Je connais la programmation Shell en bash, mais pour une raison quelconque egrep -o
pour imprimer uniquement les mots correspondants ne fonctionne pas et affiche l'erreur comme ci-dessous.
L'environnement est la console ksh unix sur PuTTY et non 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 ] [ 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 $
PS: Sujet similaire mais déjà essayé: grep peut-il afficher uniquement les mots qui correspondent au modèle de recherche?
Je suppose que c'est une boîte Solaris à laquelle vous vous connectez. La version Solaris de grep
n'a pas le -o
option. Vous pouvez donc soit
/usr/sfw/bin
, ou vous pourriez avoir de la chance avec pkg install //solaris/text/gnu-grep
); ouVoir 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