パターンが異なる線を削除する必要がありますが、
例えば
sed '/Paris/d' file.txt | cat -s
sed '/London/d' file.txt | cat -s
sed '/Rome/d' file.txt | cat -s
sed '/Pais/d' file.txt | cat -s
一連の都市名を使用し、sedコマンドを一度だけ入力してこれを行うにはどうすればよいですか?
答え1
sed
次の方法で使用できます。
sed '/paris\|london\|rome\|pais/Id' cities
I
一致する大文字と小文字がないことは、d
パターン空間内の一致するすべての行を削除することを意味します。
答え2
awkを使用してください:
awk '{if(match(tolower($0),/(paris|london|rome)/)==0) print $0}' file > file
tolower
一致する場合は、行全体を小文字に変換します。
match
それ以外の場合は、部分文字列の開始位置を返します。 0
awk は Paris、London、Rome を含まない行のみを印刷し、同じファイルに保存します。