2

というファイルがありますfile1.txt。「①」や「市」を含む行を除いて、「中心」「農場」「中」などを含む行をすべて削除したいです。

  • 削除と例外のリストは非常に長いです。
  • ファイルは UTF-8 です。

これらの単語の少なくとも 1 つを含むすべての行を削除するにはどうすればよいですか?

4

3 に答える 3

3

これはあなたのために働くかもしれません:

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
于 2012-04-22T07:15:53.240 に答える
2
sed -r '/①|city/{p;d};/center of|farm|middle of/d' file1.txt
于 2012-04-22T03:31:00.577 に答える
1
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 を含む行です。

于 2012-04-22T12:49:13.993 に答える