2016-07-11 6 views
1
私は

シェルループ呼び出しsedコマンドすべての反復

,cat 
,dog 
,rat 

を持っていたというファイルを持っていると言う場合は、ファイル で物事のインスタンスの束を取り除くためにsedを使用したい

そして、私が持っています私は

1,bird, 
2 
3,bernie 
のようなファイルを(私がNOTFOUNDを呼び出すことを)手に入れたい、このコマンドを実行することにより

1,dog,bird,cat,rat 
2,cat,dog 
3,bernie,cat,rat 

のようであるファイルデータ0

今私は、私は以下のような方法のいくつかの並べ替えでそれを行うことができthiningんだけど、私は、これはあなたが同じファイルを変更し続けるようsed

while read p; do 
     cat data | sed "s/$p//g" > NotFound 
done < found 

答えて

0

インライン編集がここに便利来る権利ではありません知っていますfoundファイルの各ラインについて:シェルでループ

while read -r p; do 
    sed -i "s/$p//g" data 
done < found 

# check output 

cat data 
1,bird 
2 
3,bernie 
1

非効率的なアプローチです。単一sedプログラムにパターンを変換し、データファイルに対してそれを実行し、言い換えれば

sed 's/^/s|/;s/$/||g/' found | sed -f - data > notfound 

:私のようなものをお勧めします。

関連する問題