1

私はプログラミングに関しては全くの初心者であり、あなたが喜んで提供してくれるすべての助けに感謝します.

これが私の問題です...

多くの行を含む data.txt ファイルと、いくつかの文字列 (1 行に 1 つの文字列) を含む string.txt ファイルがあります。

strings.txt の文字列が含まれている場合、data.txt からすべての行を削除し、その新しいファイルを proc_data.txt として保存したいと考えています。

sed を使用して 1 つ以上の文字列を検索および削除できることはわかっていますが、CLI に 500 個以上の文字列を入力すると、うまくいきます。

これまでに試したこと

~$ for i in `cat strings.txt`; do sed '/${i}/d' data.txt -i.bak; done

同じサイズのdata.txtのバックアップを作成するだけです。

私は何を間違っていますか?

4

1 に答える 1

3

使用grep:

LC_ALL=C fgrep -v -f strings.txt data.txt >proc_data.txt

switchでstrings.txtinのすべての文字列を検索します。を加えて結果を逆にする。出力を目的のファイルにリダイレクトします。data.txt-f-v

于 2012-08-31T07:58:53.460 に答える