GNU/Linux >> Linux Esercitazione >  >> Linux

Perché Grep -o -w non mi dà l'output previsto su Mac Os X?

Se faccio echo foo bar baz | grep -o -w baz l'output è foo bar baz (e una nuova riga in più).
L'output previsto sarebbe baz poiché l'opzione -o dovrebbe visualizzare solo la parte corrispondente.
Sto usando Mac OS X 10.7.1 e la versione di grep è grep (GNU grep) 2.5.1

Risposta accettata:

Esiste una soluzione alternativa utilizzando grep sintassi regex per far corrispondere la stringa vuota all'inizio e alla fine di una parola!

# 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'

Se insisti nell'usare grep 's -w flag, prova il precompilato Rudix 2010 grep binario (grep-2.5.4-1.dmg).

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


Linux
  1. Grep:perché le parentesi nel modello Grep rimuovono il processo Grep dai risultati di Ps?

  2. Perché il Pgid dei processi figlio non è il Pid del genitore?

  3. Come evidenziare una parola nell'output di "cat"??

  4. Output su Stdout e allo stesso tempo Grep in un file?

  5. Perché Bash non memorizza i comandi che iniziano con spazi?

Perché sono passato da Mac a Linux

Perché non installare pacchetti software da Internet

Come acquisire l'output di un comando top in un file in Linux?

Come posso eseguire il loop sull'output di un comando di shell?

guardare l'output di ps aux | grep blah in tmux non funzionerà?

Perché l'output di openssl passwd è diverso ogni volta?