GNU/Linux >> Belajar Linux >  >> Linux

Mengapa Grep -o -w Tidak Memberi Saya Output yang Diharapkan Pada Mac Os X?

Jika saya melakukan echo foo bar baz | grep -o -w baz hasilnya adalah foo bar baz (dan baris baru tambahan).
Output yang diharapkan adalah baz karena opsi -o seharusnya hanya menampilkan bagian yang cocok.
Saya menggunakan Mac OS X 10.7.1 dan versi grep adalah grep (GNU grep) 2.5.1

Jawaban yang Diterima:

Ada solusi dengan menggunakan grep sintaks regex untuk mencocokkan string kosong di awal dan akhir kata!

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

Jika Anda bersikeras menggunakan grep -w bendera, coba Rudix 2010 grep yang telah dikompilasi sebelumnya biner (grep-2.5.4-1.dmg).

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


Linux
  1. Mengapa Ekspresi Reguler Bekerja Di X Tapi Tidak Di Y?

  2. Mengapa Cd Bukan Program?

  3. Mengapa `md5sum` Tidak Memberikan Hash yang Sama Seperti Internet?

  1. mengapa output dari `du` seringkali sangat berbeda dari `du -b`

  2. Bagaimana saya bisa mengulang output dari perintah shell?

  3. menonton output dari ps aux | grep bla di tmux tidak akan berfungsi?

  1. Mengapa saya beralih dari Mac ke Linux

  2. Grep – Mengapa Kurung Dalam Pola Grep Menghapus Proses Grep Dari Hasil Ps?

  3. Mengapa Proses Pgid Anak Bukan Pid Orang Tua?