В bash
:
history | tr -s ' ' | cut -d' ' -f3-
В zsh
и ksh
:
history -n
В tcsh
:
history -h
Также см. ответ порыва об использовании fc
.
Если у Вас уже есть список URL, просто добавьте данные POST к тому списку. Что-то как:
www.example.com postdata1
www.foo.com
www.bar.com second_post_data
Затем вместо использования -i
, считайте файл в цикле удара и передайте данные wget:
while read url post; do wget --post-data="$post" $url; done < list.txt
Для выполнения их параллельно так, чтобы несколько файлов были загружены одновременно использовать &
вместо ;
. Осторожный, хотя, это запустит отдельное wget
процесс для каждого URL.
while read url post; do wget --post-data="$post" $url & done < list.txt
Один прием, который я использую для запуска этого типа вещи, отслеживает то, сколько в настоящее время выполняет и только выполняет следующий, если число ниже порога, 10, например:
while read url post; do
while [[ "$(pgrep -fc wget)" -gt 9 && $c -gt 10 ]]; do sleep 1; done;
((c++));
echo "Launching $url ($c)";
wget --post-data="$post" $url >/dev/null 2>&1 && echo "$c finsihed" &
done < list.txt
Это будет запускать первые 10 URL, затем ожидать одного, чтобы закончить и запустить следующее.
Можно определить разграниченный файл CSV как с этим форматом (например):
URL1;POSTDATA1
URL2;POSTDATA2
...
и проанализируйте его с помощью awk
команда:
awk -F\; '{print "wget -i "$1" --post-data="$2}' your_CSV_file
Я не использовал этот инструмент прежде, но думал, что добавил бы его, так как это звучит точно как то, что Вы ищете.
Это - названный инструмент GUI uget
. Это имеет способность взять входной файл, который содержал бы URL для загрузки наряду с HTTP данных POST из второго файла. Неясно, позволяет ли это Вам использовать различные данные POST на URL или если это - только единственный набор для всех URL, но могло бы стоить более внимательного рассмотрения.
$ uget-gtk --help
...
-i, --input-file=FILE add URLs found in FILE.
--http-post-data=STRING use the POST method; send STRING as the data.
--http-post-file=FILE use the POST method; send contents of FILE
снимки экрана