2017-10-10 1 views
1

성공 URL을 포함 :포맷 wget과 거미의 출력은 내가 이런 식으로 bash 쉘 스크립트에서 wget을 실행하고있어

input=$1 

#iterate input text file line by line and run following on each line: 

wget -a links.log -nv --spider line_n_url 

문제는 출력 할 많은 404 오류, 심지어 URL의를 가지고 있다는 것입니다 존재하는 형식은 다음과 같습니다 :

2017-10-10 11:35:46 URL: http://someurl.com/somefile.ext 200 OK 

wget이 작성하거나 쉽게 구분할 수있는 출력 형식을 지정하는 방법이 있습니까?

추가 문제는

무엇 난 후하는 타임 스탬프가없는 한 줄에 기존의 각 URL은 있습니다 .. .ext를가 일치 어렵게 만드는 세 가지 유형 있다는 것이다 URL: 또는 200 OK

http://someurl.com/somefile.ext 
http://someurl.com/somefile2.ex2 
http://someurl.com/somefile3.exp 

감사합니다.

답변

3

내가 이해 한 바로는 200 OK 개의 메시지 만 필터링하려고합니다. 당신이 당신의 bash는 스크립트에서 이런 일을 할 수 있도록, 여기 AWK보고해야합니다

$ wget -a links.log -nv --spider line_n_url 2>&1 | awk '/200 OK/{print $4}' 
http://someurl.com/somefile.ext 

당신이 고유 URL을 원하는 경우에, 당신은 할 수 :

awk '/200 OK/{print $4}' | sort | uniq 

또는 :

를 중요
awk '/200 OK/{a[$4]++}END{for (i in a) print i}' 

: 당신은이 같은 표준 출력에 열려진 리디렉션 할 수 있습니다

$ wget -nv --spider http://google.com 2>&1 | awk '/200 OK/{print $4}' 
http://www.google.nl/?gfe_rd=cr&dcr=0&ei=qgHdWa2MEqTVXsONudgM 
+0

정렬해야 할 수도 있습니다. –

+0

예, 가능할 수 있습니다. 부드러워 지자. 나는 대답에 그것을 추가 할 것이다. –

+1

유니크 (uniq)가 그것의 입력에 따라 정렬 될 필요가 있다고 생각했습니다. 둔한 것을 의미하지는 않았다. :) –

관련 문제