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
Gunakan Sed Untuk Mengganti String Dengan Satu yang Mengandung Nama Direktori (yaitu Slash “/”)?
Ssh – Bagaimana Tcp-keepalive Bekerja Di Ssh?