次のコマンドを使用して、次を含む行を削除しています。hotmail
sed -i '/^[^\t]*\t[^\t]*hotmail/d' ./file
テストデータは
"foxva****omes****","[email protected]","8*** Rd","Ne***ah","Wi***in","54***","*******"
"foxva****omes****","[email protected]","8*** Rd","Ne***ah","Wi***in","54***","*******"
"foxva****omes****","[email protected]","8*** Rd","Ne***ah","Wi***in","54***","*******"
現在は最初の行だけが削除されます。 2行目と3行目には大文字が含まれているため削除されません。大文字と小文字を区別しないように変更するにはどうすればよいですか?
答え1
この試み:
sed -i '/^[^\t]*\t[^\t]*hotmail/dI' ./file
ただし、最新のGNU sedを使用しないと問題が発生する可能性があります。
sed -i '/^[^\t]*\t[^\t]*[hH][oO][tT][mM][aA][iI][lL]/d' ./file
このリンクはGNU sedマニュアルにリンクされています説明I
およびその他の修飾子。
答え2
sedには、大文字と小文字を区別しない一致のために追加できるIフラグがあります。
バラよりhttps://stackoverflow.com/questions/2157288/using-sed-to-delete-a-case-insensitive-matched-line