скрипт bash с использованием xargs и curl (как повторить аргумент синтаксического анализа)

#bash #curl #xargs

#bash #curl #xargs

Вопрос:

 sed -e 's/,$//' -e 'y/,/:/' myips.txt | xargs  -P 5 -I XX  curl -skd --connect-timeout 10 --max-time 10 http://XX/
 

myips.txt это будет

 127.0.0.1
127.0.0.2
127.0.0.3
 

Я сохраняю выходные данные в файле, но не могу понять, как отображать IP-адрес в начале каждого вывода

команда будет curl -skd —connect-timeout 10 —max-time 10 http://127.0.0.1 и результат позволяет сказать что-то вроде случайной веб-страницы

учитывая тот факт, что у меня есть более 50 IP-адресов для изучения, я не могу понять, какие IP-адреса выводят

например, вывод будет

 `Error 404: Not Found Error 404: Not Found `
 

и я хочу, чтобы это было

 127.0.0.1 Error 404: Not Found 127.0.0.2 Error 404: Not Found 
 

или даже лучше было бы лучше

 127.0.0.1 Error 404: Not Found 
===================================    
127.0.0.2 Error 404: Not Found
 

Комментарии:

1. Вам повезло, что при более чем 50 IP-адресах для изучения , пяти curl параллельных вызовах и записи в стандартный вывод вы никогда не видели, чтобы эти выходные данные смешивались — предположительно, все веб-страницы довольно короткие.

Ответ №1:

 sed -e 's/,$//' -e 'y/,/:/' myips.txt 
    | xargs  -P 5 -I XX 
        sh -c '
            printf "%s " XX;
            curl -skd --connect-timeout 10 --max-time 10 http://XX/
            echo ===================================
        '
 

На самом деле это не связано с curl, вот демонстрация с echo :

 sed -e 's/,$//' -e 'y/,/:/' myips.txt 
    | xargs  -P 5 -I XX 
        sh -c '
            printf "%s " XX;
            echo "Error 404: Not Found";
            echo ===================================
        '
 

Вывод с помощью вашего myips.txt :

 127.0.0.1 Error 404: Not Found
===================================
127.0.0.2 Error 404: Not Found
===================================
127.0.0.3 Error 404: Not Found
===================================