grep を使用して、スペースを含めるか、開始または終了で始まる文字列を検索します。

grep を使用して、スペースを含めるか、開始または終了で始まる文字列を検索します。

空白で囲まれている、または最初または最後から来るいくつかの文字列を一致させる方法は?

-someword次の文を一致させる必要があります:word1 -someword word2、、、、。 そして、次の文では一致は必要ありません。-someword word1word1 -someword-somewords-someword-somewordd

上記を正規表現grep -r [^ ]-someword[$ ](たとえば、-someword前にスペースを入れるか、-someword文を始める必要があり、-someword後にスペースを入れる必要があるか、または-someword文を終了する必要がある)を使用してgrepingを試みましたが、何も見つかりませんでした。

ベストアンサー1

努力する:

grep -w -e -someword

からman grep

-w, --word 正規表現

          Select only those lines containing matches that form whole
          words.  The test is that the matching substring must
          either be at the beginning of the line, or preceded by a
          non-word constituent character.  Similarly, it must be
          either at the end of the line or followed by a non-word
          constituent character.  Word-constituent characters are
          letters, digits, and the underscore.  This option has no
          effect if -x is also

-somewordスペース以外に英数字以外の文字(または)などで囲まれている場合#も一致します,。囲まれていることを確認したい場合ただスペースまたは行の開始/終了を使用して、次のものを使用できます。

egrep '(^|[[:space:]])-someword([[:space:]]|$)'

# Which is equivalent to:

grep -E '(^|[[:space:]])-someword([[:space:]]|$)'

# Or without extended regex:

grep '\(^\|[[:space:]]\)-someword\([[:space:]]\|$\)'

おすすめ記事