ファイル内のこれ(2つ)を見つけるにはどうすればよいですか?

ファイル内のこれ(2つ)を見つけるにはどうすればよいですか?

「then」と「there」を含むファイルがあります。

私はできます。

$ grep "then " x.x
x and then some
x and then some
x and then some
x and then some

私はできます。

$ grep "there " x.x
If there is no blob none some will be created

1回の操作で両方を検索する方法は?頑張った

$ grep (then|there) x.x

-bash: 予期しない表示 "(") の近くで構文エラーが発生しました。

そして

grep "(then|there)" x.x
durrantm.../code
# (Nothing)

ベストアンサー1

式を引用符で囲む必要があります。あなたが経験しているエラーは、bashが(特殊文字として解釈した結果です。

また、拡張正規表現を使用するにはgrepに指示する必要があります。

$ grep -E '(then|there)' x.x

|拡張正規表現がない場合は、および(をエスケープする必要があります)。ここでは一重引用符を使用しています。 Bashは二重引用符の中のバックスラッシュを特別に扱います。

$ grep '\(then\|there\)' x.x

この場合、グループ化は必要ありません。

$ grep 'then\|there' x.x

次の場合に必要です。

$ grep 'the\(n\|re\)' x.x

おすすめ記事