サンプルファイル
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'