我有一個文件file1.txt
。除了包含「①」或「城市」的行之外,我想刪除包含單詞「中心」,「農場」或「中間」等的每一行。如何刪除包含特定單詞的所有行,但包含某些單詞的行除外?
- 刪除和異常的列表非常長。
- 這些文件是UTF-8。
如何刪除包含這些單詞中的至少一個的每一行,但不包括那些有一些例外的行?
我有一個文件file1.txt
。除了包含「①」或「城市」的行之外,我想刪除包含單詞「中心」,「農場」或「中間」等的每一行。如何刪除包含特定單詞的所有行,但包含某些單詞的行除外?
如何刪除包含這些單詞中的至少一個的每一行,但不包括那些有一些例外的行?
這可能會爲你工作:
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}'
打印含有C或D僅當
a b
b c
e f
這是每一個線路,它不含有c或d,以及線它們包含a或b。
這將複製諸如「這是一個城市」等行。 – hvd 2012-04-22 18:34:12
@hvd:你說的沒錯!我糾正了我現在的腳本,但與kev的解決方案不一樣。 – 2012-04-22 19:55:45
我總是有點懷疑先做錯了什麼,然後再修復它......在這種情況下,重複行然後刪除原來的。這是沒有必要的。您可以使用'b'(如在potong的答案中)。 – hvd 2012-04-22 08:14:32