Linuxのdiffコマンドで使えるオプションをご紹介します。Linuxのdiffコマンドでは2ファイルの差分を出力することを基本にディレクトリ同士の差分を出力することも可能です。ここからどんなことが出来るのかをお伝えしつつ、解説していきます。
Linuxにはdiffというコマンドがあります。diffを使うことでテキストファイルの差分を出力することができます。このdiffコマンドの用途を知っても実際にはどんな時に使えるのだ、と疑問を持つ方が多いでしょう。ですので、今回はdiffの有用性を実行例も踏まえてご紹介します。初心者の方にも分かりやすくお伝えしていきます。
まず、diffコマンドとは2つのテキストファイルを比較し、その比較から出てきた差分を出力するコマンドです。形式としては「diff ファイル1 ファイル2」という形式で実行します。2つのファイルを比較して、差分を出力するものですがディレクトリ単位でも出力可能です。diffコマンドはLinuxの基本コマンドの1つで用途が多いです。
Linuxのdiffコマンドを実際に打ち込むと以下のような形式になる。以下の場合はtest1とtest2というCSVファイルの中にある差分を抽出しなさいと言う命令文になります。この2つのファイルに対してdiffコマンドを打ち込み、実際に差分が生じていれば、その差分をすべて出力されるという仕組みになります。
Linuxのdiffコマンドにはいくつかの使い分けができます。このdiffコマンドの使い分けについてご紹介しましょう。diffコマンドは確かに2つのテキストファイルの差分を出力するコマンドです。しかし、差分を出力する場面によってコマンドを変えなければいけないとしたら厄介なコマンドになってしまいます。diffコマンドはそうしたことにも対応できます。
diffコマンドの基本動作としては、やはり2つのテキストファイルを比較し、差分を出力するということになります。構文としてはtest1とtest2のファイルを比較した配列となります。実際にdiffコマンドを実行すると次のような結果が表示されました。
結果には2c2と表示されているところがありますが、test1の2行目がtest2の2行目に変更されていることを指しています。
2c2の下にはtest1の2行目、さらに点線を挟んでtest2の2行目の内容が表示されています。ここから2ファイルが比較され、差分がどのように出力されたかが判別できます。これがdiffコマンドの最も基本的なことですので覚えておいてください。
少しだけ余談となりますが、Linuxのdiffの使い方というのを少しまとめておきましょう。diffを使うことで2つのテキストファイル、もしくはディレクトリの差分、つまり違っているところを出力することができます。テキスト内容が違うということは、片方でエラーが出ているときに修正ができるということになります。
あるいはdiffを使うことで変更されてしまった箇所の元の形を追うこともできます。diffの使い方の基本としてはこういったメリットがあります。diffを使うことででテキストファイルの差分を出力することができ、それを何に使うかは自由ですが、実際に業務等でdiffを使う際には参考にしてみてください。
さて、Linuxのdiffコマンドができるのは基本動作だけではありません。もっと複雑な形式でも比較し、差分を出力することができます。例えば、比較したところ差分が複数個出力されてしまったらどうなるのでしょうか。正解は以下の図のようになります。
先ほど入力した内容から少しだけ変更をしています。今回は5,6c5,6と表記されています。これはtest1の5行目と6行目がtest2の5行目と6行目で変更されていることを指しています。その下にtest1の5行目と6行目の内容、点線を挟んでtest2の5行目と6行目の内容が表示されています。
今の例だと行が連番になっているので、まとめてdiffが表示してくれていますが離れた行の場合はどうなのでしょうか。例えば10行目と17行目で比較した結果、差異が出力された場合は以下のようになります。
後ほどご紹介しますが、Linuxのdiffコマンドでオプションと呼ばれる機能を併用することもできます。ただし、オプションなしでもdiffを使うことは可能です。オプションなしでファイルを比較する方法と言いましたが、単純にdiffコマンドだけを入力すれば、その方法に該当することになります。
ただし、オプションを使わない方法でdiffを使うと面倒な上に機能が制限されてしまいますので、diffの使い方としてはあまりおすすめできません。この方法でのメリットとしてはdiff単体での能力を見ることができます。Linux初心者の方であれば、練習のためにオプションなしの方法でdiffを試してみてください。
1 / 5
続きを読む