私はこの質問を何度も受けましたが、解決策が私にはうまくいかないことを知っています。
1_allと2_ovoという2つのファイルがあります。彼らはすべてアイテムのリストを含みます。 1_all には 2_ovo のエントリとその他のエントリが含まれます。 2_ovoと同じ1_allのすべてのエントリを削除する必要があります。これが私が持っているものです:
for i in 2_ovo
do
sed -i "/$i/d" 1_all
done
したがって、2_ovoから値を取得し、1_allから値を削除します。
sedの変数は二重引用符で処理する必要があることを知っていますが、このコマンドはまったく何もしません。 $iを実際の値に置き換えると、その値は期待どおりにファイルから削除されます。どんなアイデアがありますか?
ベストアンサー1
ループを実行するにはファイルを読み取る必要があります。
for i in `cat /path/to/file/2_ovo`
do
sed -i "/$i/d" 1_all
done