わからない diff
単独でもできますが、いつでも他の GNU ユーティリティの力を利用して支援することができます。
diff -u diffa.txt diffb.txt | grep '^-[^-]' | sed 's/^-//'
diff を実行し、「-」で始まる行のみを選択します - これらは変更され、diffa.txt ファイルからの値を持ち、次に sed
になります。 それらの「-」記号を削除してください。
編集: diff
でいくつかの実験を行った後 、以下のコマンドがあなたが望むものを生成するように見えます:
diff --changed-group-format='%<' --unchanged-group-format='' diffa.txt diffb.txt
より簡単な方法は、 comm
を使用することです linux ユーティリティ (入力にはソートされたファイルが必要です)。標準出力に書き込みます:
-
diffa.txt に固有の行
-
diffb.txt に固有の行
-
一般的な行
それに応じて、パラメーター1、2、または3でそれらのそれぞれを抑制することができます。したがって、あなたの場合は次のようになります:
comm -23 diffa.txt diffb.txt
diffb.txt に固有の行、一般的な行を抑制し、diffa.txt にのみ固有の行を出力します
ソース: https://www.tutorialspoint.com/unix_commands/comm.htm
comm
について言及したいと思います ソートされた入力ファイルを想定しているため、diff
とは異なる結果を報告します .
diff --changed-group-format='%<' --unchanged-group-format='' diffa.txt diffb.txt
普遍的です。 @vava に敬意を表します