プロセス置換を使用する
<(コマンド)
でコマンドの出力をdiff
コマンドに渡す。
diff <(コマンド1) <(コマンド2)
プロセス置換を使わない場合は、一時ファイルを作成してからdiff
コマンドに渡す必要がある。
コマンド1 > tmp1.txt
コマンド2 > tmp2.txt
diff tmp1.txt tmp2.txt
rm tmp1.txt tmp2.txt
プロセス置換を使った場合はコマンド回数が減るし、一時ファイルを作らなくて済むのでスッキリする。
実行例
$ diff <(ls -l) <(ls -la)
2,3c2,5
< -rw-r--r-- 1 sue staff 36 4 1 16:55 a.txt
< -rw-r--r-- 1 sue staff 24 4 1 11:31 b.txt
---
> drwxr-xr-x 4 sue staff 128 4 1 11:31 .
> drwxr-xr-x 97 sue staff 3104 8 8 20:39 ..
> -rw-r--r-- 1 sue staff 36 4 1 16:55 a.txt
> -rw-r--r-- 1 sue staff 24 4 1 11:31 b.txt
応用例: sedコマンドが意図通り動作しているか確認する
sed
コマンドの正規表現がうまく動作しているか確認するときに便利。
$ diff test1.txt <(sed 's/abc/ABC/g' test1.txt)
1c1
< 012abcdef
---
> 012ABCdef
\第一線のプログラマーの行動原理を学べる!/