Listas de proxy con Bash curl: eliminar o CR final das liñas CRLF
Le as URL de proxy liña por liña en Bash e elimina un CR final dos ficheiros CRLF antes de pasar o valor a curl.
Unha liña copiada dun ficheiro CRLF pode parecer proxy.example:8080 mentres a variable en realidade remata cun retorno de carro. Poñer a variable entre comiñas conserva ese carácter; non o elimina.
Para un ficheiro Bash cunha URL de proxy completa por liña:
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
Usa entradas como http://proxy.example:8080; a lista de proxy HTTP ofrece enderezos públicos candidatos para formatar así. read elimina o delimitador de salto de liña; a expansión de sufixo elimina un CR final se existe. A condición tamén procesa unha última liña non baleira sen salto de liña.
IFS= evita a división de campos durante read, e -r conserva as barras invertidas literais. Despois as comiñas dobres pasan a URL resultante como un só argumento de curl. Evita iterar sobre a saída da substitución de comandos: a división de palabras da shell pode alterar os límites de rexistro do ficheiro antes de que curl os vexa.
Isto normaliza os finais de liña. Non corrixe un protocolo de escoita incorrecto, un extremo ausente nin un servizo inalcanzable.