大文字のみで構成される単語である行のみをgrepする必要がある書き込みgrepに問題があります。
たとえば、私はファイルを持っています:file1.txt
Abc AAA
ADFSD
F
AAAAx
出力は次のようになります。
Abc AAA
ADFSD
F
アドバイスをありがとう。
あなたはただ使うことができます:
grep -E '\b[[:upper:]]+\b' file1.txt
つまり、大文字のみで構成される単語全体を探します。
この egrep は動作するはずです:
egrep '\b[A-Z]+\b' file
これにより、望ましい結果が得られます。
egrep '\b[A-Z]+\b' file1.txt
結果は
Abc AAA
ADFSD
F
GNU grep は POSIX パターンをサポートしているため、次のように簡単に実行できます。
grep -e '[[:upper:]]' file1.txt
入力に非ASCII文字が含まれている場合は、\p{Lu}
代わりに[A-Z]
次を使用できます。
grep -P '\b\p{Lu}+\b' file
為に
LONDON
Paris
MÜNCHEN Berlin
これは戻ります
LONDON
MÜNCHEN Berlin
おそらくこれらのほとんどを手動でリストすることができ、@Skippy-le-grand-gourou が言うように、egrep は[A-Z]
アクセント記号付きの文字に拡張され\p{Lu}
ますが、を使用することで、「2017 年 6 月以降、大文字の ẞすべて大文字のスタイルの代替として受け入れられます"
grep '\<[AZ]*>' file1.txt