unix - Imprima solo palabra coincidente, no toda la línea a través de grep
solaris (2)
Si tienes perl
:
echo "I am a boy" | perl -lne ''/am/ && print $&''
am
Estoy familiarizado con la programación de shell en bash, pero por alguna razón egrep -o
para imprimir solo las palabras coincidentes no está funcionando y muestra el error como a continuación.
El entorno es consola ksh unix en masilla y no en linux o ubuntu terminal ... ¡se agradece cualquier consejo!
Entrada y salida del terminal:
AB12 $ echo "i am a boy" | grep -w "am"
i am a boy
AB12 $ echo "i am a boy" | egrep -o "am"
egrep: illegal option -- o
usage: egrep [ -bchilnsv ] [ -e exp ] [ -f file ] [ strings ] [ file ] ...
AB12 $ echo$
ksh: echo$: not found
AB12 $ echo $SHELL
/bin/ksh
AB12 $ echo "i am a boy" | grep -o "am"
grep: illegal option -- o
Usage: grep -hblcnsviw pattern file . . .
AB12 $
PD: hilo similar, pero ya lo intenté: ¿grep puede mostrar solo las palabras que coinciden con el patrón de búsqueda?
Supongo que esta es una caja de Solaris a la que te estás conectando. La versión de grep
de Solaris no tiene la opción -o
. Entonces puedes
- instale el grep de GNU en su caja de Solaris (puede que ya esté instalado en
/usr/sfw/bin
, o podría tener suerte conpkg install //solaris/text/gnu-grep
); o - use awk en su lugar (vea esta pregunta SO )
Ver en mi caja:
$ uname
SunOS
$ echo "i am a boy" | grep -o "am"
grep: illegal option -- o
Usage: grep -hblcnsviw pattern file . . .
$ echo "i am a boy" | /usr/sfw/bin/ggrep -o "am"
am