Я использовал эту команду:
cat urls.txt | xargs -n 1 -P 10 wget -q
для загрузки текстовых файлов URL-адресов. Это было отлично, когда мой URL-файл был похож:
http://domain1.com/page.html
http://domain2.com/page.html
http://domain3.com/page.html
Однако теперь мне нужно загрузить текстовые файлы URL-адресов и опубликовать данные, например:
--post-data '1=1' http://domain1.com/page.html
--post-data '1=1' http://domain2.com/page.html
--post-data '1=1' http://domain3.com/page.html
При использовании приведенного выше cat, он пытается загрузить URL-адрес, а затем данные сообщения в виде URL-адреса. например в приведенном выше примере он будет загружать http://domain1.com/page.html, а затем попытаться загрузить --post-data 1 = 1, затем http://domain2.com/page.html и т. д. [ ! d3]
В любом случае, чтобы кошка могла отправлять только каждую строку файлов URL?
Обновление: я обнаружил, что добавив escape в пространство, например:
[ f4]делает его обработанным как один url, но the - кажется, удаляется из аргумента -post-data.
Откройте терминал и запустите:
cat urls.txt | sed "s/[\"\<\>' \t\(\);]/\n/g" | grep "http://" | sort -u | xargs -n 1 -P 10 wget -q
Вам не нужно xargs, вы можете сделать это с помощью простой петли bash. Либо сохраните свои URL-адреса в виде простого списка и добавьте параметры непосредственно в wget:
while IFS= read -r url; do wget --post-data '1=1' "$url"; done < urls.txt
или включите их в файл и передайте их в wget:
while IFS= read -r url; do wget "$url"; done < urls.txt