2つのキーワードを含むテキストファイルの行の一致

2つのキーワードを含むテキストファイルの行の一致

サンプルファイル

ssdnaslcnasjkdlcnljaksjcnaslcnlasncadcadsoadsklfjewilfm Warning error ascacs
kjasdncijojencikmasklcmioewmnconmqewciomnweiocn warning
sakcjnaksldnmclkasdmnckljamnklckmalc aslenkjlansdcledlkamsc error
alscmkklamclkamscklmnaeuye error warning

「エラー」と「警告」の両方がある行だけをインポートしたいと思います。

答え1

大文字と小文字の区別:

sed '/warning/!d; /error/!d' < file

または

awk '/warning/ && /error/' < file

または

grep warning < file | grep error

大文字と小文字を区別しない:

牛に似た一種の栄養

sed '/warning/I!d; /error/I!d' < file
gawk -v IGNORECASE=1 '/warning/ && /error/' < file

基準

grep -i warning < file | grep -i error
awk '{l = tolower($0)}; l ~ /warning/ && l ~ /error/' < file
sed '/[wW][aA][rR][nN][iI][nN][gG]/!d; /[eE][rR][rR][oO][rR]/!d' < file

(この方法の利点は、ロケールに依存しないことです。たとえば、一部のロケールでは、他の方法はWARNINGと一致しませんが、WARNÁと一致する可能性があります。)

答え2

この問題を解決する別の簡単な方法は次のとおりです。grep -Ei 'error.warning|warning.error'

関連情報