tutorial online multiple example egrep regex unix grep

regex - online - egrep búsqueda de espacios en blanco



grep wildcard example (5)

Tal vez deberías proteger el patrón con comillas (si es bash, o algo equivalente para el shell que estás usando).

[y] puede tener un significado especial para el caparazón.

Estoy tratando de usar egrep con un patrón de expresiones regulares para que coincida con el espacio en blanco.

He usado RegEx con Perl y C # antes y ambos admiten los patrones para buscar espacios en blanco. egrep (o al menos la versión que estoy usando) no parece apoyar este patrón.

En algunos artículos en línea, he encontrado una abreviatura [[: espacio:]], pero parece que no funciona. Cualquier ayuda es apreciada.

Uso: SunOS 5.10


Si está usando versiones ''degradadas'' de grep (cito el término porque la mayoría de UNIX en las que trabajo todavía usan las RE originales, no aquellas de fantasía con " /s " o " [[:space:]] ": -), puede volver a la forma más baja de RE.

Por ejemplo, si :space: se define como espacios y pestañas, simplemente use:

egrep ''[ ^I]'' file

Ese ^I es un personaje de tabulación real, no los dos personajes ^ y I .

Esto supone :space: se define como pestañas y espacios; de lo contrario, ajuste las opciones dentro de los caracteres [] .

La ventaja de utilizar RE degradadas es que deberían funcionar en todas las plataformas (al menos para ASCII; los lenguajes Unicode o no ingles pueden tener reglas diferentes, pero rara vez encuentro una necesidad).


Veo el mismo problema en SunOS 5.10. /usr/bin/egrep no admite expresiones regulares extendidas.

Intente usar /usr/xpg4/bin/egrep :

$ echo ''this line has whitespace thislinedoesnthave'' | /usr/xpg4/bin/egrep ''[[:space:]]'' this line has whitespace

Otra opción podría ser simplemente usar perl:

$ echo ''this line has whitespace thislinedoesnthave'' | perl -ne ''chomp;print "$_/n" if /[[:space:]]/'' this line has whitespace


$ cat > file this line has whitespace thislinedoesnthave $ egrep [[:space:]] file this line has whitespace

Funciona bajo Debian

Para Solaris, ¿no hay un "eselect" como (ver gentoo) o un archivo de alternativas para establecer por defecto su versión de egrep?

¿Has probado grep -E, porque si el egrep que está en tu camino no es el bueno, tal vez grep es.


Si está utilizando bash, entonces la sintaxis para poner una pestaña en una línea es

$''foo/tbar''

Hace poco estuve trabajando con sed para hacer algunas correcciones en un archivo delimitado por tabuladores. Parte del archivo fue:

sed -E -e $''s//t--QUOTE--//t"/g''

Ese argumento es analizado por bash, y sed ve una expresión regular con pestañas literales.