GrepはUnicodeで大文字の単語を検索します。

GrepはUnicodeで大文字の単語を検索します。

grepいくつかの検索の最後に大文字の単語を見つけ、重複せずにリストするコマンドを見つけました。

grep -hoP "\w*[[:upper:]]+\w*" * | sort -u

しかし、そのような文字を含む単語の場合、êgrepはその文字の前の単語のみを返し、その文字の後のすべての項目を無視するようです。私のテキストは次のようにエンコードされましたUTF-8。私の検索基準に問題があるようです。

何も知らない人のための簡単な解決策がありますかgrep

ベストアンサー1

grep次の例に示すように、withを使用-PしてPerl正規表現機能を有効にし、Unicode文字範囲を文字クラスとして指定できます(以下の文字クラスで置き換えたい言語のUnicodeを見つける)。

grep -oP '\w*[\x00-\x99]+\w*' infile

おすすめ記事