How do i diff two files from the web

不想你离开。 提交于 2019-11-30 01:33:52

问题


I want to see the differences of 2 files that not in the local filesystem but on the web. So, i think if have to use diff, curl and some kind of piping.

Something like

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

but it doesn't work.


回答1:


The UNIX tool diff can compare two files. If you use the <() expression, you can compare the output of the command within the indirections:

diff <(curl file1) <(curl file2)

So in your case, you can say:

diff <(curl -s http://to.my/file/one.js) <(curl -s http://to.my/file.two.js)



回答2:


Some people arriving at this page might be looking for a line-by-line diff rather than a code-diff. If so, and with coreutils, you could use:

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

To get lines in the first file that are not in the second file. You could use comm -13 to get lines in the second file that are not in the first file.

If you're not restricted to coreutils, you could also use sd (stream diff), which doesn't require sorting nor process substitution and supports infinite streams, like so:

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

The fact that it supports infinite streams allows for some interesting use cases: you could use it with a curl inside a while(true) loop (assuming the page gives you only "new" results), and sd will timeout the stream after some specified time with no new streamed lines.

Here's a blogpost I wrote about diffing streams on the terminal, which introduces sd.



来源:https://stackoverflow.com/questions/16361691/how-do-i-diff-two-files-from-the-web

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!