というファイルがありますfile1.txt
。「①」や「市」を含む行を除いて、「中心」「農場」「中」などを含む行をすべて削除したいです。
- 削除と例外のリストは非常に長いです。
- ファイルは UTF-8 です。
これらの単語の少なくとも 1 つを含むすべての行を削除するにはどうすればよいですか?
これはあなたのために働くかもしれません:
sed -i '/center of\|farm\|middle of/{/①\|city/!d}' file1.txt
また
sed -i '/center of/ba
/farm/ba
/middle of/ba
b
:a
/①/b
/city/b
d' file1.txt
words.txt
およびexceptions.txt
ファイルがある場合は、次を使用します。
sed '/\*exceptions\*/{h;s/.*/:a/p;d}
x
/./{x;s|.*|/&/b|p;$!d;s/.*/d/;q}
x
s|.*|/&/ba|' words.txt - <<<"*exceptions*" exceptions.txt > file.sed
sed -i -f file.sed file1.txt
sed -r '/①|city/{p;d};/center of|farm|middle of/d' file1.txt
sed '/blacklist/{/whitelist/p;d}' file
ホワイトリスト以外のブラックリストを削除します。
echo -e "a b\nb c\nc d\nd e\ne f" | sed '/c\|d/{/a\|b/p;d}'
版画
a b
b c
e f
これは、c または d を含まないすべての行と、a または b を含む場合にのみ c または d を含む行です。