Работая над описанием проблемы Стивеном , простым способом упростить обработку вывода было бы просто перевести все символы возврата каретки в новые строки, оставив вам отчет о ходе работы curl в виде набора отдельных строк., который затем можно использовать awk
на:
$ for f in *.dl; do < "$f" tr '\r' '\n' | awk '$1 == "100" {print $0}' ; done
100 720k 100 720k 0 0 22.5M 0 --:--:-- --:--:-- --:--:-- 22.7M
100 23.6M 100 23.6M 0 0 372M 0 --:--:-- --:--:-- --:--:-- 369M
(Однако, если curl округлить процент, который он печатает, до ближайшего целого числа, а не в меньшую сторону, огромные файлы могут отображать несколько строк с 100
в первом столбце.)
С другой стороны, если известно, что файлы не содержат ничего, кроме вывода curl, то мы могли бы просто выбрать последнюю строку вместо просмотра содержимого:
$ for f in *.dl; do < "$f" tr '\r' '\n' | tail -n1 ; done
100 720k 100 720k 0 0 22.5M 0 --:--:-- --:--:-- --:--:-- 22.7M
100 23.6M 100 23.6M 0 0 372M 0 --:--:-- --:--:-- --:--:-- 369M