Bash curl proxy listák: a záró CR eltávolítása a CRLF sorokból
Olvassa a proxy URL-eket soronként Bashben, és távolítson el egy záró CR-t a CRLF fájlokból, mielőtt az értéket átadja a curlnek.
A CRLF-fájlból másolt sor úgy nézhet ki, mint proxy.example:8080, miközben a változó valójában kocsi-visszatérő karakterrel végződik. A változó idézőjelek közé tétele megőrzi ezt a karaktert; nem távolítja el.
Egy Bash-fájlhoz, amely soronként egy teljes proxy URL-t tartalmaz:
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
Használjon olyan bejegyzéseket, mint http://proxy.example:8080; a HTTP proxy lista nyilvános címjelölteket kínál, amelyek így formázhatók. A read eltávolítja az újsor-elválasztót; az utótag-kiterjesztés eltávolít egy záró CR-t, ha van. A feltétel az utolsó, újsor nélküli nem üres sort is feldolgozza.
Az IFS= megakadályozza a mezőfelosztást a read alatt, a -r pedig megőrzi a szó szerinti visszafelé perjeleket. Ezután a dupla idézőjelek egyetlen curl-argumentumként adják át az eredményül kapott URL-t. Kerülje a parancshelyettesítés kimenetén való iterálást: a shell szófelosztása megváltoztathatja a fájl rekordhatárait, mielőtt a curl látná őket.
Ez normalizálja a sorvégeket. Nem javítja a rossz figyelő protokollt, a hiányzó végpontot vagy az elérhetetlen szolgáltatást.