Listas de proxy con Bash curl: eliminar el CR final de las líneas CRLF
Lee las URL de proxy línea por línea en Bash y elimina un CR final de los archivos CRLF antes de pasar el valor a curl.
Una línea copiada de un archivo CRLF puede parecer proxy.example:8080 mientras la variable en realidad termina con un retorno de carro. Poner la variable entre comillas conserva ese carácter; no lo elimina.
Para un archivo Bash con una URL de proxy completa por línea:
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; la lista de proxy HTTP ofrece direcciones públicas candidatas para formatearlas así. read elimina el delimitador de salto de línea; la expansión de sufijo elimina un CR final si existe. La condición también procesa una última línea no vacía sin salto de línea.
IFS= evita la división de campos durante read, y -r conserva las barras invertidas literales. Después, las comillas dobles pasan la URL resultante como un solo argumento de curl. Evita iterar sobre la salida de la sustitución de comandos: la división de palabras del shell puede alterar los límites de registro del archivo antes de que curl los vea.
Esto normaliza los finales de línea. No corrige un protocolo de escucha incorrecto, un extremo ausente ni un servicio inalcanzable.