grep を使うと以下のようになる。つまり、pattern-file.txt に含まれる各行をパターンとして、target-file.txt からパターンにマッチする行を抽出する。パターンマッチは行ごとに行われるので、target-file.txt に含まれる行順が保存される。
$ grep --fixed-strings --line-regexp --file=pattern-file.txt target-file.txt
以下のようなファイルを適用させた場合、
$ cat pattern-file.txt Alice Bob Charlie Dave $ cat target-file.txt Alice ボブ Dave Dave
以下のような結果になる。
$ diff pattern-file.txt target-file.txt 2,3c2,3 < Bob < Charlie --- > ボブ > Dave $ grep --fixed-strings --line-regexp --file=pattern-file.txt target-file.txt Alice Dave Dave
diff 出力の反転ということを考えると、diff が違いのある行だとしている 2 行目と 3 行目以外 (1 行目と4 行目) を表示してほしいのだけれど、3 行目も表示されている。diff 出力の反転をきたいするなら、grep を使う解決策はあまり適切ではないかもしれない。