2つの正規表現をキャプチャする方法

2つの正規表現をキャプチャする方法

このコマンドでは、*がドットではなく*.comまたは*.netに似た文字列を抽出したいと思います。私はこれを書いた:

grep -P -E '^[^.]+\.com$ |^[^.]+\.net$' example.csv 

次のエラーが発生します。

grep: conflicting matchers specified

明確にできますか?

ベストアンサー1

-PPCRE()と拡張正規表現()は同時に使用できません。-Eこの場合、PCRE式をまったく使用していないように見えるので、それらを削除してもかまいません-P。それ以降はスペースも一致できません$

大きな式をより短い式に結合します。

grep -E '^[^.]+\.(com|net)$'

または、

grep -E -x '[^.]+\.(com|net)'

この-xオプションを使用すると、完全grepな行のみが一致します。

この式は、非ドット文字のゼロ以外の数字、ドット、または次の文字と一致しnetますcom

おすすめ記事