unix grep solaris

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 con pkg 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