2013-05-03 14 views
10

ローカルファイルシステムではなくウェブ上の2つのファイルの違いを見たいと思います。だから、私はdiffcurlと何らかの配管を使用しなければならないと思います。ウェブから2つのファイルをどのようにdiffするのですか

curl http://to.my/file/one.js http://to.my/file.two.js | diff 

ような何かが、それは動作しません。

+0

ローカルファイルシステムに書き込みますか? :) – Ryan

+3

'diff <(curl oneweb)<(curl otherweb)'はどうですか? – fedorqui

+0

@fedorquiなぜこれで答えないのですか?それは正しいです:) –

答えて

24

UNIXツールdiffは、2つのファイルを比較できます。あなたが<()表現を使用する場合は、間接内のコマンドの出力を比較することができます

diff <(curl file1) <(curl file2) 

をだからあなたの場合には、あなたが言うことができます。

diff <(curl http://to.my/file/one.js) <(curl http://to.my/file.two.js) 
+6

素敵なもの、私は** - s **を追加してカールをサイレントにし、 'diff <(curl -s http://to.my/file/one.js)<(curl -s http://to.my/file.two.js)' – dsantaolalla

1

このページに到達した一部の人々があるかもしれませんcode-diffではなく、行ごとのdiffを探します。もしそうなら、とのcoreutilsで、あなたが使用できます。

comm -23 <(curl http://to.my/file/one.js | sort) \ 
     <(curl http://to.my/file.two.js | sort) 

は、第二のファイルに含まれていない最初のファイルの行を取得するには。 comm -13を使用して、最初のファイルにない行を2番目のファイルに入れることができます。あなたがcoreutilsのに制限されていない場合は

、あなたもそうのように、無限のストリームを並べ替えたり、プロセス置換必要とサポートしていない、sd(ストリームの差分)を使用することができます

curl http://to.my/file/one.js | sd 'curl http://to.my/file.two.js' 

という事実を無限ストリームをサポートしているので、いくつかの面白い使用例があります:while(true)ループ内のカールで使用することができます(ページには「新しい」結果しかないと仮定します)。sdは、 。

ここにはblogpostがあります。端末にdiffingストリームについて書きましたが、これはsdを紹介しています。

関連する問題