GNU/Linux >> Tutoriels Linux >  >> Linux

Pourquoi Grep -o -w ne me donne-t-il pas la sortie attendue sur Mac Os X ?

Si je fais echo foo bar baz | grep -o -w baz la sortie est foo bar baz (et une nouvelle ligne supplémentaire).
La sortie attendue serait baz car l'option -o ne doit afficher que la partie correspondante.
J'utilise Mac OS X 10.7.1 et la version de grep est grep (GNU grep) 2.5.1

Réponse acceptée :

Il existe une solution de contournement en utilisant le grep Syntaxe regex pour faire correspondre la chaîne vide au début et à la fin d'un mot !

# grep regex syntax for matching words only
man grep | less -p '\<'

# POSIX 1003.2 regular expression syntax for matching words only
# should work for sed, ed, ...
man re_format | less -p '\[\[:<:\]\]'

echo 'foo bar baz' | egrep -o '\<baz\>'

echo 'foo bar baz' | sed -n '/.*[[:<:]]\(baz\)[[:>:]].*/s//\1/p'

Si vous insistez pour utiliser grep 's -w flag, essayez le précompilé Rudix 2010 grep binaire (grep-2.5.4-1.dmg).

http://rudix.org/packages-ghi.html#grep


Linux
  1. Pourquoi l'expression régulière fonctionne-t-elle dans X mais pas dans Y ?

  2. Grep - Pourquoi les crochets dans le modèle Grep suppriment-ils le processus Grep des résultats Ps?

  3. Pourquoi le Pgid des processus enfants n'est-il pas le PID du parent ?

  4. Comment mettre en surbrillance un mot dans la sortie de "cat" ? ?

  5. Pourquoi Bash ne stocke-t-il pas les commandes commençant par des espaces ?

Pourquoi ne pas installer des progiciels à partir d'Internet

Pourquoi le CD n'est-il pas un programme ?

Pourquoi `md5sum` ne donne-t-il pas le même hachage qu'Internet ?

Sortie vers Stdout et en même temps Grep dans un fichier ?

regarder la sortie de ps aux | grep blah dans tmux ne fonctionnera pas?

Pourquoi la sortie de openssl passwd est-elle différente à chaque fois ?