sed
テキスト
行削除

テキストファイルから特定の文字列を含む行を削除

More than 3 years have passed since last update.

下記のファイルから,「AAA」を含む行を削除したいが

「BBB='none'」が含まれていたら残したい

grepコマンドでvオプションを指定すればできそうだが,

「〜含まれていたら残す」条件が書けなかった.

AAA BBB='none'

AAA CCC='none'
BBB
CCC
AAA
BBB

(2行目と5行目が削除対象)

回避策として



$ cat greptest.txt| awk '{if(!/BBB=\047none\047/&&/AAA/){}else{print $0}}'

で削除することができた.

「\047」はシングルコォートです.

awkにシングルクォートが指定できず,下記サイトを参考にさせていただきました.

「awk でシングルクォートを扱う」 

http://gauc.no-ip.org/awk-users-jp/blis.cgi/DoukakuAWK_080