1

ファイル内で正確な単語を見つけようとしています。単語は myServer で、検索しようとしているファイルの内容は次のとおりです。

This is myServer and it is cool
This is myServer-test and it is cool

これを行うためのさまざまな試みの結果は次のとおりです。

grep '^myServer$' test-file.txt
grep -Fx myServer test-file.txt

--> no results

grep -w myServer test-file.txt
grep -w myServer test-file.txt
grep '\<myServer\>' test-file.txt
grep '\bmyServer\b' test-file.txt
-->
This is myServer and it is cool
This is myServer-test and it is cool

ここにスイッチがありませんか?

どうもありがとう。

4

3 に答える 3

3

単語境界でgrepを試してください:

 grep '\<myServer\>' test-file.txt

編集:ハイフンを単語境界として扱いたくないようです。そのためには、次のように grep を使用します。

grep -E '\<myServer\>([^-]|$)'  test-file.txt
于 2013-04-04T16:36:08.170 に答える
1

とを使用して、単語の開始と終了を識別でき\<ます\>。たとえば\<myS、 grep に指定すると、 で始まる単語を含む行が検索されmySます。

当然、正確な単語を検索するには、次のように検索します。

grep '\<myServer\>' test-file.txt

あなたの試みのほとんどで、あなたは完全に無関係なことをしています:

  • ^$行頭と行末を一致さます。
  • -F複数の固定文字列を検索
  • -x正規表現に一致する行全体を検索します

注:-w正しく動作します。ただし、「単語全体」の定義は、POSIX の考えとは異なるようです。

于 2013-04-04T16:36:46.783 に答える