14

Unixで正確な単語パターンを検索したい。例:Log.txtファイルには次のテキストが含まれます。

aaa
bbb
cccaaa   ---> this should not be counted in grep output looking for aaa

私は次のコードを使用しています:

count=$?
count=$(grep -c aaa $EAT_Setup_BJ3/Log.txt)

ここで、出力は 2 ではなく ==> 1 である必要があります。上記のコードを使用すると、出力として 2 が得られます。何かが足りないので、これを手伝ってくれる人はいますか?

4

2 に答える 2

36

単語全体を使用するオプション:

grep -c  -w aaa $EAT_Setup_BJ3/Log.txt

grepマニュアルから:

-w, --word-正規表現

単語全体を形成する一致を含む行のみを選択します。テストは、一致する部分文字列が行の先頭にあるか、単語以外の構成文字が前にある必要があることです。

コメントに記載されているように-w、GNU拡張です。非 GNU grep では、次を使用できますword boundaries

grep -c "\<aaa\>" $EAT_Setup_BJ3/Log.txt
于 2013-04-02T07:45:55.360 に答える