Bash curl 프록시 목록: CRLF 줄 끝의 CR 제거
Bash에서 프록시 URL을 한 줄씩 읽고 curl에 값을 넘기기 전에 CRLF 파일에서 끝의 CR 하나를 제거합니다.
CRLF 파일에서 복사한 줄은 proxy.example:8080처럼 보이지만 변수는 실제로 캐리지 리턴으로 끝납니다. 변수를 따옴표로 감싸면 그 문자를 보존할 뿐, 제거하지는 않습니다.
한 줄에 하나의 완전한 프록시 URL이 들어 있는 Bash 파일의 경우:
target='https://api.example/'
while IFS= read -r proxy || [ -n "$proxy" ]; do
proxy=${proxy%$'\r'}
if [ -z "$proxy" ]; then
continue
fi
curl --proxy "$proxy" --max-time 10 --url "$target"
done < ProxyList.txt
http://proxy.example:8080 같은 항목을 사용하세요. HTTP 프록시 목록에는 그런 형식으로 쓸 수 있는 공개 주소 후보가 있습니다. read는 줄바꿈 구분자를 제거하고, 접미사 확장은 끝에 CR이 있으면 하나를 제거합니다. 이 조건은 줄바꿈 없이 끝나는 마지막 비어 있지 않은 줄도 처리합니다.
IFS=는 read 중 필드 분리를 막고, -r은 백슬래시를 그대로 보존합니다. 그다음 큰따옴표가 결과 URL을 하나의 curl 인자로 전달합니다. 명령 치환의 출력을 반복 처리하는 것은 피하세요. 셸의 단어 분리가 curl이 보기 전에 파일의 레코드 경계를 바꿀 수 있습니다.
이것은 줄 끝을 정규화합니다. 잘못된 수신 프로토콜, 없는 엔드포인트, 연결할 수 없는 서비스는 고치지 않습니다.