파일 텍스트에서 여러 URL 필터링

파일 텍스트에서 여러 URL 필터링

urls.txt 파일에 URL 목록이 있습니다.

curl가능하다면 를 사용하여 가져오려고 할 때 404 오류가 발생하는 모든 URL을 가져와서 새 파일에 복사하고 싶습니다 .

예를 들어 내 파일 urls.txt의 URL은 다음과 같습니다.

mysite.com/page1
mysite.com/page2
mysite.com/page3
mysite.com/page4
mysite.com/page5
...
mysite.com/page100
...
mysite.com/page1000

그래서 각각을 가져오려고 하고, 오류 404로 인해 가져오기가 실패하면 실패한 URL을 새 파일에 저장하고 싶습니다.

답변1

이것이 최선은 아닐 수도 있지만 시도해 보십시오.

파일을 생성 urlcheck.sh하고 실행 권한을 부여합니다. 아니면 그냥 다음 명령을 입력하세요.

touch urlcheck.sh
chmod +x urlcheck.sh

다음 스크립트를 붙여넣으세요.urlcheck.sh

#!/bin/bash
TIMEOUT=3

if [ ! -f output404.txt ]; then
    touch output404.txt
fi

while IFS= read -r line; do
    OUT_URL=$(curl -I $line 2>&1 -m $TIMEOUT| awk '/HTTP\// {print $2}')
    if [ "$OUT_URL" == "404" ]; then
        echo $line >> output404.txt
        echo "$line written to output404.txt"
    else
        echo "$line     $OUT_URL"
    fi
done < "$1"

그리고 저장하세요.

스크립트를 실행합니다:

./urlcheck.sh urls.txt

그런 다음 output404.txt스크립트가 생성한 내용을 확인하세요.

참고하세요각 줄의 URL은 읽을 수 있는 URL이어야 합니다 curl(예: ) https://unix.stackexchange.com/.

두 번째 줄에서 시간 초과를 변경할 수 있습니다 TIMEOUT=3.

관련 정보