2つのファイルを入れ替えた行と比較したところ、同じ行が2回欠落していることがわかりました。

2つのファイルを入れ替えた行と比較したところ、同じ行が2回欠落していることがわかりました。

私は行が互いに順列である2つのファイルに対するlinux diffコマンドを理解しようとしていますが、生成された出力を理解できません。次の3つのコマンドを考えてみましょう。

[myPrompt]$ cat file1
apples
oranges
[myPrompt]$ cat file2 
oranges
apples
[myPrompt]$ diff file1 file2
1d0
< apples
2a2
> apples

上記の神秘的なdiffの結果を説明できる人はいますか?

  1. 出力に「orange」への言及がまったくないのはなぜですか?
  2. 1d0とはどういう2a2意味ですか?

わかりました。この回答ではそれ:

「<」は対応する行が file2 にないことを示し、「」>」はその行が file1 にないことを示します。

ただし、出力にオレンジが欠けている理由は説明されていません。

ベストアンサー1

このレポートを理解するには、最初のファイル()を2番目のファイル()と同じにするためにどのようなdiff変更を加える必要があるかを説明する説明的なレポートであることに注意してください。file1file2

具体的には、手段dとして1d0削除そして手段aとして2a2次へ追加

したがって:

  • 1d0file1()内の1行目を削除する必要があることを示しますapples。 inは、削除されていない場合、2番目のファイル()に表示される場所がゼロ行であることを意味します0。つまり、(戻る)変更するとの0行の後に1行が追加されます。1d0file2file2file1file1file2
  • 2a2現在の2行目にoranges2行目()を追加することを示します。 (最初の行を削除してから行1に切り替えます。)file2file1file1oranges

おすすめ記事