Busqueda con grep que no me termina de funcionar

Bueno la cuestiones es esta, quiero realizar una búsqueda con grep que no me muestra las lineas que contengan el símbolo $.

Se que puedo realizarlo de la siguiente manera.

grep -nv '\$' texto.txt

Pero mi intención era realizarlo así.

grep -n '[^$]' texto.txt

He probado con la siguiente ya que entiendo debería funcionar ya que no es necesario el backslash

grep -nE '[^$]' texto.txt

Incluyéndolo tampoco funciona

grep -nE '[^\$]' texto.txt

Bueno la cuestion es por que motivo no funciona esto '[^$]'
fgrep o grep -F para interpretar literalmente el patrón y no expresiones regulares.
d_d_d escribió:fgrep o grep -F para interpretar literalmente el patrón y no expresiones regulares.


Perdona creo que no me he explicado bien.

Esto funciona correctamente.
grep -nv '\$' texto.txt

La pregunta es por que esto no

grep -n '[^$]' texto.txt

o esto

grep -n "[^$]" texto.txt
Bueno, parece que pasan la expresión por que en alguna parte de la cadena se incluye texto que no es $, ¿no?
Prueba con esto, así creo que sería las líneas cuyos caracteres, de principio a fin y sin importar la cantidad, no sean $:
grep -n "^[^$]*$" texto.txt

Mi prueba:
TravelMate-7720:~/Escritorio$ cat texto.txt
$ al comienzo
Sin 'ese' caracter
Contiene $
TravelMate-7720:~/Escritorio$ grep -n "^[^$]*$" texto.txt
2:Sin 'ese' caracter
Khin escribió:Bueno, parece que pasan la expresión por que en alguna parte de la cadena se incluye texto que no es $, ¿no?
Prueba con esto, así creo que sería las líneas cuyos caracteres, de principio a fin y sin importar la cantidad, no sean $:
grep -n "^[^$]*$" texto.txt

Mi prueba:
TravelMate-7720:~/Escritorio$ cat texto.txt
$ al comienzo
Sin 'ese' caracter
Contiene $
TravelMate-7720:~/Escritorio$ grep -n "^[^$]*$" texto.txt
2:Sin 'ese' caracter



Gracias, funciona correctamente y he entendido el motivo por el cual no me funcionaba. [beer]
4 respuestas