sedと変数

sedと変数

私はこの質問を何度も受けましたが、解決策が私にはうまくいかないことを知っています。

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

おすすめ記事