no puedo conseguir grep
a mayúsculas y minúsculas búsqueda con este patróngrep case sensitive [A-Z]?
$ grep 'T[A-Z]' test.txt
The Quick Brown Fox Jumps Over The Lazy Dog
THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG
no puedo conseguir grep
a mayúsculas y minúsculas búsqueda con este patróngrep case sensitive [A-Z]?
$ grep 'T[A-Z]' test.txt
The Quick Brown Fox Jumps Over The Lazy Dog
THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG
usar comillas para evitar que el patrón de ser emparejado como un pegote para archivo (s) en el sistema de archivos por el shell. ''
Utilice una clase de caracteres nombrada para garantizar una coincidencia que distinga entre mayúsculas y minúsculas. [[:lower:]]
Use un cuantificador para hacer coincidencias con más de un carácter. \+
Utilice ancla (s) para asegurarse de que la cerilla esté colocada correctamente. ^
grep '^T[[:upper:]]\+' test.txt
La razón de que [A-Z]
no funciona para usted es que la forma en la configuración regional que está utilizando se implementa en el sistema, que también incluye patrón de letras minúsculas.
@svnpenn: Ver [this] (http://unix.stackexchange.com/questions/15980/does-should-lc-collate-affect-character-ranges) y [this] (http: //unix.stackexchange. com/questions/19322/why-are-capital-letters-included-in-a-range-of-min-case-letters-in-an-awk-rege) para una discusión de los problemas. –
Puede establecer el valor de LANG:
$ LANG=C grep 'T[A-Z]' test.txt
THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG
grep 'T[[:upper:]]' test.txt
grep 'T[ABCDEFGHIJKLMNOPQRSTUVWXYZ]' test.txt
Esto parece ser un error en al menos algunas versiones de 'grep'; cuando usa un rango de letras en su expresión regular, la búsqueda en caso de que sea insensible para todas las letras, pero la primera en el rango. P.ej. 'echo 's' | grep '[S-T]' 'no genera ninguna salida, mientras que' echo 't' | grep '[S-T]' 'saca' t'. Por otro lado, 'echo 't' | grep -o '[S-T]' 'tampoco da salida, lo cual es algo confuso. Usar '[[: upper:]]' en su lugar parece resolver este problema para el caso cuando el rango es '[A-Z]'. – HelloGoodbye