ファイルに以下がある場合 -
apple,orange,banana
orange
ora,orange,apple
apple,ora
orange,apple,ora,banana
以下を含む行だけを印刷したいと思いますora
。orange
ora,orange,apple
orange,apple,ora,banana
答え1
シングルエグレフ:
egrep 'ora\b.*orange|orange.*ora\b' file
出力:
ora,orange,apple
orange,apple,ora,banana
またはシングルsed表現する:
sed -n '/orange/{/ora\b/p}' file
ora,orange,apple
orange,apple,ora,banana
どちらの方法も\b
(単語の境界)が使用されます。
答え2
完全な単語を取得するにはGrepを使用してください。
$ grep -w orange foo.csv | grep -w ora
ora,orange,apple
orange,apple,ora,banana
-w
これは、一致するテキストが単語ではなく文字(単語の文字は文字、数字、および下線付き)で囲まれなければならないことを意味します。