Je suis familier avec la programmation shell en bash, mais pour une raison quelconque egrep -o
pour imprimer uniquement les mots correspondants ne fonctionne pas et affiche une erreur comme ci-dessous.
L’environnement est la console unix ksh sur le mastic et non pas le terminal Linux ou Ubuntu …… tout conseil est apprécié!
Entrée et sortie du 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 ] [ ssortingngs ] [ 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 $
PS: Fil similaire mais déjà essayé: Est-ce que grep ne peut afficher que les mots correspondant au modèle de recherche?
Je suppose que c’est une boîte Solaris à laquelle vous vous connectez. La version de Solaris de grep
n’a pas l’option -o
. Donc, vous pouvez soit
/usr/sfw/bin
, ou vous pourriez avoir de la chance avec pkg install //solaris/text/gnu-grep
); ou Voir sur ma boite:
$ 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
Si vous avez perl
:
echo "I am a boy" | perl -lne '/am/ && print $&' am