Я использую xargs для выполнения команды с набором входных параметров примерно так:
cat <someinput> | xargs -n 1 -P 5 <somecmd>
Входной файл очень длинный и занимает много времени для запуска. Так что я просто жду, пока появится командная строка. Есть ли способ отобразить индикатор выполнения для числа введенных аргументов?
Я пытался использовать «бар», но у меня всегда была «бесконечная» пропускная способность. Кажется, что xargs читает весь ввод перед выполнением команд.
источник
Вы можете использовать PV:
При этом вы будете знать, где находится чтение someimput , поэтому вы будете приблизительно знать, где находится лечение someimput .
источник
FIND=( find "$DIR" -type f ) && ${FIND[@]} -print0 | pv -0lps $(${FIND[@]} | wc -l) | xargs -0 -I {} -P 5 <somecmd>
Если вам нужен только общий признак прогресса, самый простой способ - просто повторить эхо перед выполнением команды, которую вы хотели бы выполнить.
Пример:
cat <someinput> | xargs -I{} sh -c 'echo {}; <somecmd>;'
-I{}
устанавливает{}
текущую строку, обрабатываемуюsh -c
позволит вам выполнять несколько команд (примечание: точка с запятой после каждой команды, включая последнюю .источник