Bash curl-proxylijsten: het laatste CR uit CRLF-regels verwijderen
Lees proxy-URL's regel voor regel in Bash en verwijder één laatste CR uit CRLF-bestanden voordat de waarde aan curl wordt doorgegeven.
Een regel die uit een CRLF-bestand is gekopieerd kan eruitzien als proxy.example:8080, terwijl de variabele in werkelijkheid eindigt met een carriage return. De variabele tussen aanhalingstekens zetten behoudt dat teken; het verwijdert het niet.
Voor een Bash-bestand met één volledige proxy-URL per regel:
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
Gebruik regels zoals http://proxy.example:8080; de HTTP-proxylijst levert openbare adreskandidaten die zo kunnen worden opgemaakt. read verwijdert de regeleindescheiding; de suffixuitbreiding verwijdert één laatste CR als die aanwezig is. De voorwaarde verwerkt ook een laatste niet-lege regel zonder regeleinde.
IFS= voorkomt veldsplitsing tijdens read, en -r behoudt letterlijke backslashes. Dubbele aanhalingstekens geven de resulterende URL vervolgens als één curl-argument door. Vermijd itereren over de uitvoer van opdrachtvervanging: woordsplitsing door de shell kan de recordgrenzen van het bestand wijzigen voordat curl ze ziet.
Dit normaliseert regeleinden. Het lost een verkeerd luisterprotocol, een ontbrekend eindpunt of een onbereikbare dienst niet op.