Я хочу загрузить большой файл в автоматическом скрипте с помощью 'wget', но 'прогресс', сгенерированный 'wget', слишком многословен.Например:
wget --progress=dot:mega 'http://mysite/my_large_file'
Для моего файла более 1,5 ГБ, при очень высокой скорости (> 9 МБ / с), даже при установке стиля прогресса на «мега», вывод по-прежнему слишком подробный:
0K ........ ........ ........ ........ ........ ........ 0% 2.03M 13m16s
3072K ........ ........ ........ ........ ........ ........ 0% 3.85M 10m7s
6144K ........ ........ ........ ........ ........ ........ 0% 3.85M 9m3s
9216K ........ ........ ........ ........ ........ ........ 0% 3.89M 8m30s
Но я не хочу завершать, чтобы отключить вывод прогресса, поскольку он позволяет мне узнать, есть ли какая-либо проблема.Теперь я использую «sed» для удаления точек:
wget --progress=dot:mega 'http://mysite/my_large_file' 2>&1 | sed -r 's/^ *([0-9]+K)[. ]*([0-9]+%) +([0-9.]+[A-Z]) +(.*)$/<\1,\2,\3\/s,remain:\4>, /g'
Вывод выглядит намного лучше:
<0K,0%,2.45M/s,remain:11m0s>,
<3072K,0%,9.13M/s,remain:6m58s>,
<6144K,0%,9.35M/s,remain:5m35s>,
<9216K,0%,9.37M/s,remain:4m54s>,
<12288K,0%,9.52M/s,remain:4m28s>,
<15360K,1%,9.42M/s,remain:4m11s>,
Теперь я хочу даже удалить символы «новой строки» в концекаждой линии, поэтому мой фреймворк автоматизации не будет ничего отбрасывать.Я пробовал 'td', 'awk', но все они не выводятся мгновенно.То есть, когда я использую «sed», он выводит строки, пока идет загрузка, но когда я использую «td» или «awk», я долго ждал, но ничего не выводилось.Я предполагаю, что он будет выводить весь документ, когда загрузка будет завершена, что бесполезно.
Так что мне интересно, есть ли способ удалить символы «новой строки» при мгновенном выводе потока.
Кстати, есть ли способ сделать вывод прогресса wget менее многословным, а не «no verbose».Например, печатайте каждые 10 МБ или 20 МБ на строку, или, если хотите, печатайте прогресс каждые, например, 10 секунд.
Как предлагается в комментариях, здесь я поместил желаемый вывод:
<0K,0%,2.45M/s,remain:11m0s>, <3072K,0%,9.13M/s,remain:6m58s>, <6144K,0%,9.35M/s,remain:5m35s>, <9216K,0%,9.37M/s,remain:4m54s>, <12288K,0%,9.52M/s,remain:4m28s>, <15360K,1%,9.42M/s,remain:4m11s>,
Весь вывод в одну строку.