Grep出力 - 予想される結果は何ですか?

Grep出力 - 予想される結果は何ですか?

私は次のようなgrepを持っています:

grep "/abc/[A-Z]" file1.txt | cut -d/ f3 | sort -u

grepは結果を完全に返します。

ALPHA
abc
BRAVO
CHARLIE

しかし、なぜ出力がabc含まれていますか?区切り文字バックスラッシュの後に大文字の単語のみを使用するように正規表現を設定しました。これが予想される結果ですか?abc出力からどのように削除する必要がありますか?

答え1

に使用する正規表現を固定していませんgrep。その結果、ラインのどこでも一致することができます。

たとえば、1行は次のようになります。

blah/blah/abc/Abc

または

/blah/abc/Abc

は式と一致し、両方とも文字列をabc3番目の区切り/フィールドとして含みます。

式を行の先頭に固定するには、次のようにします。

^/abc/[A-Z]

abcまたは、他の方法でより厳しい一致を強制するか、スタイルとアプリケーションに最適な方法を使用して最終結果をクリーンアップします。grep -v -F -x abc

関連情報