sedを使用して別のファイルの1つのファイルから同じ行を削除する方法は?

sedを使用して別のファイルの1つのファイルから同じ行を削除する方法は?

2つのファイルがあり、1つはもう1つの親セットです。大きなファイルから小さいファイルの同じ行を削除したいと思います。

考えられる問題の1つは、その行にバックスラッシュが含まれていることです。

どうすればいいですか?

ベストアンサー1

これは私の作品です。

remove_lines()
{
    # remove lines from a file 
    #  
    # $1 - source file with patterns of lines to be removed
    # $2 - destination file
    tmpfile=$(mktemp "$(dirname -- "$2")"/XXXXXXXX) &&
    grep -F -f "$1" -v -- "$2" >>"$tmpfile" &&
    mv -- "$tmpfile" "$2" &&
}

編集:ちょうどそれがそこにないことに気づきましたsed。しかし、それはあまり重要ではありません。そうですか?

おすすめ記事