テキストファイル内の特定の単語の場所を見つけたいです。たとえば、単語変数をブルーム語として定義した場合、このコマンドを使用したかどうかを知りたいと思います。
grep -n "$word" mydict.txt
しかし、単語変数を「ab」として定義すると。コードは、「ab」を含む各行を提供します。たとえば、Bloomという単語も提供しますが、abという単語を含む行だけが必要です。
答え1
ここでは、行1ではなく行3を探したいのですか?
abcdefg
foobar
ab cd ef
その場合は、grep -w
次のことが役に立ちます(GNUのマニュアルページ)。
-w
、--word-regexp
単語全体を構成する一致を含む行のみを選択します。
「単語」と見なされるのは、ロケールによって多少異なります。 C ロケールでは、「単語文字」は文字、数字、下線です。
したがって、ab
その中に完全な言葉があります。
printf 'ab' | grep -w ab
printf 'ab cd' | grep -w ab
printf 'ab-cd' | grep -w ab
printf 'ab, cd' | grep -w ab
しかし、ここではそうではありません。
printf 'ab_cd' | grep -w ab
printf 'ab1' | grep -w ab