我想查看兩個文件不在本地文件系統中但在網絡上的區別。所以,我認爲如果必須使用diff
,curl
和某種管道。我如何區分網絡上的兩個文件
喜歡的東西
curl http://to.my/file/one.js http://to.my/file.two.js | diff
,但它不工作。
我想查看兩個文件不在本地文件系統中但在網絡上的區別。所以,我認爲如果必須使用diff
,curl
和某種管道。我如何區分網絡上的兩個文件
喜歡的東西
curl http://to.my/file/one.js http://to.my/file.two.js | diff
,但它不工作。
UNIX工具diff
可以比較兩個文件。如果使用<()
表達,可以將間接引用中比較命令的輸出:
diff <(curl file1) <(curl file2)
你的情況
所以,你可以說:
diff <(curl http://to.my/file/one.js) <(curl http://to.my/file.two.js)
不錯,我會添加** - s **使捲曲沉默,只比較內容,如: 'diff <(curl -s http://to.my/file/one.js)<(curl -s http://to.my/file.two.js)' – dsantaolalla 2014-05-05 10:42:19
有些人到達此頁可能是尋找一行一行的差異而不是代碼差異。如果是這樣,與coreutils的,你可以使用:
comm -23 <(curl http://to.my/file/one.js | sort) \
<(curl http://to.my/file.two.js | sort)
要獲得的第一個文件是不是在第二個文件中的行。您可以使用comm -13
獲取第二個文件中不在第一個文件中的行。
如果你不侷限於coreutils的,你也可以使用sd(流差異),不需要排序,也不進程替換,並支持無限流,就像這樣:
curl http://to.my/file/one.js | sd 'curl http://to.my/file.two.js'
事實上,它支持無限流,允許一些有趣的用例:你可以在while(true)
循環內部使用它(假設頁面只給你「新」結果),並且sd
會在特定時間後超時流,沒有新的流線。
這裏是一個blogpost我寫了關於在終端上的差異流,它介紹了sd
。
將它們寫入本地文件系統? :) – Ryan 2013-05-03 14:48:20
'diff <(curl oneweb)<(curl otherweb)'呢? – fedorqui 2013-05-03 14:48:21
@fedorqui爲什麼不回答這個?這是正確的:) – 2013-05-03 19:09:15