Bash-curl-Proxylisten: abschließendes CR aus CRLF-Zeilen entfernen
Proxy-URLs in Bash Zeile für Zeile lesen und ein abschließendes CR aus CRLF-Dateien entfernen, bevor der Wert an curl übergeben wird.
Eine aus einer CRLF-Datei kopierte Zeile kann wie proxy.example:8080 aussehen, während die Variable tatsächlich mit einem Wagenrücklauf endet. Das Setzen der Variable in Anführungszeichen bewahrt dieses Zeichen; es entfernt es nicht.
Für eine Bash-Datei mit einer vollständigen Proxy-URL pro Zeile:
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
Verwenden Sie Einträge wie http://proxy.example:8080; die HTTP-Proxyliste liefert öffentliche Adresskandidaten, die sich so formatieren lassen. read entfernt das Zeilenumbruch-Trennzeichen; die Suffix-Erweiterung entfernt ein abschließendes CR, falls vorhanden. Die Bedingung verarbeitet auch eine letzte nichtleere Zeile ohne Zeilenumbruch.
IFS= verhindert die Feldaufteilung während read, und -r bewahrt wörtliche Backslashes. Doppelte Anführungszeichen übergeben dann die resultierende URL als ein curl-Argument. Vermeiden Sie das Iterieren über die Ausgabe der Befehlsersetzung: Die Wortaufteilung der Shell kann die Datensatzgrenzen der Datei verändern, bevor curl sie sieht.
Dies normalisiert Zeilenenden. Es behebt weder ein falsches Listener-Protokoll noch einen fehlenden Endpunkt oder einen nicht erreichbaren Dienst.