私は行が互いに順列である2つのファイルに対するlinux diffコマンドを理解しようとしていますが、生成された出力を理解できません。次の3つのコマンドを考えてみましょう。
[myPrompt]$ cat file1
apples
oranges
[myPrompt]$ cat file2
oranges
apples
[myPrompt]$ diff file1 file2
1d0
< apples
2a2
> apples
上記の神秘的なdiffの結果を説明できる人はいますか?
- 出力に「orange」への言及がまったくないのはなぜですか?
1d0
とはどういう2a2
意味ですか?
わかりました。この回答ではそれ:
「<」は対応する行が file2 にないことを示し、「」>」はその行が file1 にないことを示します。
ただし、出力にオレンジが欠けている理由は説明されていません。
ベストアンサー1
このレポートを理解するには、最初のファイル()を2番目のファイル()と同じにするためにどのようなdiff
変更を加える必要があるかを説明する説明的なレポートであることに注意してください。file1
file2
具体的には、手段d
として1d0
削除そして手段a
として2a2
次へ追加。
したがって:
1d0
file1
()内の1行目を削除する必要があることを示しますapples
。 inは、削除されていない場合、2番目のファイル()に表示される場所がゼロ行であることを意味します0
。つまり、(戻る)変更するとの0行の後に1行が追加されます。1d0
file2
file2
file1
file1
file2
2a2
現在の2行目にoranges
2行目()を追加することを示します。 (最初の行を削除してから行1に切り替えます。)file2
file1
file1
oranges