1

台本を書いているのですが、今頭の中が真っ白です。

つまり、基本的に、次1.txtのような一連の IP を持つ があります。

1.1.1.1
2.2.2.2
3.3.3.3

また2.txt、次のような別のファイルもあります。

1.1.1.1
2.2.2.2
3.3.3.3 bad ip
4.4.4.4
5.5.5.5

にあるもの1.txtはすべて で削除する必要があるため、2.txt処理後、2.txtは次のようになります。

4.4.4.4
5.5.5.5

スクリプトを使用して空白を描画する

while line in `cat 2.txt` 
sed -i 's/"$line"//g' 2.txt

誰でも私にいくつかの指針を与えることができますか?

4

5 に答える 5

3

GNU

sed -r 's#(.*)#/\1/d#' file1 | sed -f - file2
于 2013-06-20T19:14:54.710 に答える
1

1.txt を反復処理し、すべての値を保存します。次に、2.txt の行を反復処理し、いずれかの値が 1.txt のいずれかの値と一致する場合、それらを保存しません。1.txt の値と一致しない 2.txt の値のみを保存します。

于 2013-06-20T19:11:54.840 に答える
1

この awk 1-liner は仕事をするべきです:

awk 'NR==FNR {a[$1];next} !($1 in a)' {1,2}.txt
于 2013-06-20T19:19:55.570 に答える
0
awk 'NR==FNR{a[$0]++;next}{for(x in a) if(index($0,x)>0) next}1' file{1,2}
于 2013-06-20T19:12:54.780 に答える