regex - several - multiple grep commands
¿Funciona grep de forma diferente en OSX (3)
Estoy tratando de usar grep como estoy acostumbrado desde Linux, con todas sus increíbles funciones y todo el poder de RegEx, ... pero en Mac OS X no está funcionando como esperaba.
Si uso "-P" (Perl Regex) me da el resultado de "uso" (--help). Allí encontramos el parámetro "-P" en la lista de parámetros "-abcDEFGHhIiJLlmnOoPqRSsUVvwxZ" ... Todavía no funciona.
Otro ejemplo es el asterisco o el signo más. Estoy intentando esto http://wiki.bash-hackers.org/howto/conffile
Para revisar un archivo de configuración en busca de contenido inapropiado que usa la instrucción:
if egrep -q -v ''^#|^[^ ]*=[^;]*'' "$configfile"; then
echo "Config file is unclean, cleaning it..." >&2
# filter the original to a new file
egrep ''^#|^[^ ]*=[^;&]*'' "$configfile" > "$configfile_secured"
configfile="$configfile_secured"
fi
Y no funciona en líneas como esta:
DATABASE=some_database; ls -la
¿Qué estoy haciendo mal? Porque todo esto funciona bien en máquinas Linux.
En OS X tienes FreeBSD grep
por defecto, en Linux generalmente GNU grep
.
Los siguientes recursos pueden explicar por qué GNU grep parece ser mejor (y más rápido):
Mac OS X se basa en BSD y no utiliza las herramientas GNU a las que está acostumbrado. Leí sobre POSIX grep porque sin las extensiones GNU seguirás agitándote sin ninguna razón. Todo debería seguir siendo posible, pero no de la manera exacta a la que estás acostumbrado.
ubuntu (bueno, mi caja antigua de ubuntu 8, estoy sentada al lado de ...):
$ grep -V
GNU grep 2.5.3
OS X:
$ grep -V
grep (BSD grep) 2.5.1-FreeBSD
Sí; Son programas diferentes. OS X no es Linux. Está basado en BSD.
Si desea la versión GNU de grep, con sus diversas extensiones, puede instalarla fácilmente con Homebrew .