指定された2つの単語(大文字と小文字を区別しない)を含むすべての行を見つける方法は? [コピー]

指定された2つの単語(大文字と小文字を区別しない)を含むすべての行を見つける方法は? [コピー]

テキストファイルの1行に2つの(指定された)単語があることを確認する必要があります。単語の文字に制限はありません。たとえば、

テキストファイルで「cat」と「elephant」という単語の両方を含む行を探したいです(つまり、同じ行にある必要があり、必ず並んでいる必要はありません)。

Cat is smaller than elephant
Elephant is larger than cat
Cats are cute!
Elephants are very strong
Cat and elephants live in different environments
cats are friendly

前の例では、これら2つの単語を含む行をどのように見つけますか?

Cat is smaller than elephant
Elephant is larger than cat
Cat and elephants live in different environments

grepとawkを試しましたが、希望はありません。問題は、いくつかの単語には大文字と小文字がありますが、文字の状態に関係なく、これら2つの単語をどのように一致させることができるかということです。 ?

ベストアンサー1

そしてgrep

grep -i "cat" file | grep -i "elephant"

Cat is smaller than elephant
Elephant is larger than cat
Cat and elephants live in different environment

のフラグはgrep大文字と小文字(大文字/小文字)を無視することです。

 -i, --ignore-case         ignore case distinctions

またはawk

awk 'BEGIN{IGNORECASE=1} /cat/&&/elephant/{print $0}' file

こんにちはawkステートメントを次のように実行することをお勧めします。

awk '/cat/&&/elephant/' IGNORECASE=1 file

おすすめ記事