Bash curl proxy listeleri: CRLF satırlarındaki sondaki CR'yi kaldırma
Bash içinde proxy URL'lerini satır satır okuyun ve değeri curl'e vermeden önce CRLF dosyalarından bir sondaki CR'yi kaldırın.
CRLF dosyasından kopyalanan bir satır proxy.example:8080 gibi görünebilir, oysa değişken aslında satır başı karakteriyle biter. Değişkeni tırnak içine almak bu karakteri korur; onu kaldırmaz.
Her satırda bir tam proxy URL'si içeren bir Bash dosyası için:
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
http://proxy.example:8080 gibi girdiler kullanın; HTTP proxy listesi bu şekilde biçimlendirilecek genel adres adayları sağlar. read yeni satır ayırıcısını kaldırır; son ek genişletmesi varsa bir sondaki CR'yi kaldırır. Koşul ayrıca yeni satırı olmayan son boş olmayan satırı da işler.
IFS= read sırasında alan bölünmesini önler ve -r gerçek ters eğik çizgileri korur. Ardından çift tırnaklar elde edilen URL'yi tek bir curl argümanı olarak geçirir. Komut ikamesinin çıktısı üzerinde yinelemeden kaçının: kabuğun sözcük bölünmesi, curl onları görmeden önce dosyanın kayıt sınırlarını değiştirebilir.
Bu, satır sonlarını normalleştirir. Yanlış dinleme protokolünü, eksik uç noktayı veya erişilemeyen hizmeti düzeltmez.