dreamin' blog

この記事は公開されていません。

diffコマンドよく使うけど、良く忘れるのと、Qiitaとかkobitoとかmarkdownとかテストするために投稿。
※基本的に僕のメモなので役立つかは知りません。すみません。

改行コード無視してdiff

$ diff -w a.txt b.txt または diff --strip-trailing-cr

http://d.hatena.ne.jp/youhey/20091028/1256748465

サーバ間でdiff

$ ssh hostname cat filename | diff filename -

タブ無視してdiff

$ diff b.txt a.txt
2c2
<         echo "hoge";
---
>       echo "hoge";

-bオプションでタブを無視できる

$ diff b.txt a.txt -b

ちなみにタブ無視してgit diffも

$ git diff -b

または

$ git diff --ignore-space-change

diffの出力形式

-cオプション
context 出力形式を用いる

$ diff -c b.txt a.txt
*** b.txt       2012-10-01 06:05:08.000000000 -0400
--- a.txt       2012-10-01 05:42:43.000000000 -0400
***************
*** 1,4 ****
  <?php
!         echo "hoge";
!         echo "hoge";
  ?>
--- 1,3 ----
  <?php
!       echo "hoge";
  ?>

-uオプション
unified 出力形式を用いる

$ diff -u b.txt a.txt--- b.txt
2012-10-01 06:05:08.000000000 -0400+++ a.txt
2012-10-01 05:42:43.000000000 -0400@@ -1,4 +1,3 @@
<?php
-        echo "hoge";
-        echo "hoge";
+       echo "hoge";
?>

http://www.dollpaper.com/info/245.html

本当に稀にこんな無茶なことをやってみたくなる

基本的にはgitとかhgで差分見ますが、レガシーなサーバ環境ではこういうことよくやります。

for i in `find ./hoge/`; do diff $i ./fuga/ ; done