2013-05-03 5 views
10

로컬 파일 시스템이 아니라 웹에있는 두 개의 파일의 차이점을보고 싶습니다. 그래서, 만약 내가 diff, curl 및 파이핑의 일종 사용해야한다고 생각합니다.웹에서 두 개의 파일을 비교하는 방법

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은 두 파일을 비교할 수 있습니다. 당신이 <() 표현을 사용하는 경우 indirections 내에서 명령의 출력을 비교할 수 있습니다 귀하의 경우 그래서

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보다는 line-by-line diff를 찾고 있습니다. 그렇다면, 및로 coreutils, 당신은 사용할 수 있습니다

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

는 두 번째 파일에없는 첫 번째 파일의 라인을 얻을 수 있습니다. comm -13을 사용하여 두 번째 파일에서 첫 번째 파일에없는 행을 가져올 수 있습니다. 당신이로 coreutils로 제한하지 않는 경우

, 당신은 또한 지금과 같은 무한 스트림을 정렬하거나 프로세스 대체 필요로 지원하지 않는, sd (스트림 DIFF)를 사용할 수 있습니다

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

사실 그 무한 스트림을 지원하는 몇 가지 흥미로운 사용 사례가 있습니다 : while(true) 루프 내부의 말림으로이를 사용할 수 있습니다 (페이지에 "새로운"결과 만 제공한다고 가정). sd은 지정된 시간 후에 스트림을 새로 스트리밍하지 않고 시간 초과합니다. .

여기에 blogpost이 있습니다. 터미널에 diffing 스트림에 대해 썼습니다. sd을 소개합니다.

관련 문제