diffコマンドでファイルを使わず文字列を比較する方法

Tech

diffコマンドは引数にファイルを指定する必要があります。よって、diffしたいときは、diffしたい文字列をファイルに出力しなければなりません。しかし、場合によっては、ファイルに書き出すまでもないような処理や、なるべくファイルに書き出したくない場合もあると思います。そんなときは、プロセス展開(<()と記述)を使って次のように記載します。

#!/bin/bash

str1=aaa
str2=bbb

diff <(echo ${str1}) <(echo ${str2})

実行結果は次の通り。

$ bash difftest.sh
1c1
< aaa
---
> bbb

このプロセス展開、知っておくといろいろ便利です。ただし、ちょっとした注意事項があり、自分はこれに引っかかってsyntax errorになってしばらく詰まってしまいました。

詳細はこちらの記事に書いておきますので、よろしければご覧ください。

コメント

タイトルとURLをコピーしました