Как я могу распечатать вывод PV каждый на новой строке, как она меняется?

Мне нужно скопировать большой файл, используя pv, и, поскольку pv выводит прогресс, я хочу воспользоваться этим и использовать его в файле php. Тем не менее, pv выводит прогресс в той же строке (перезаписывая предыдущий статус), и мне нужно, чтобы он записывал каждый новый статус в новую строку, которая затем может быть прочитана php. Как я могу это сделать? Я пробовал различные версии следующего, но это не работает:

 pv largefiles > newlargefiles | stdbuf -oL tr '\r' '\n'
1
задан 21 September 2015 в 15:54

1 ответ

Проблема состоит в том, что объем плазмы не сделает никакого вывода, если stderr не будет терминалом, поэтому добавьте -f. Также необходимо переместить stderr в канал:

pv -f largefiles 2>&1 >newlargefiles | stdbuf -oL tr '\r' '\n'

В зависимости от Вашего использования, Вам, возможно, не понадобится эти stdbuf -oL, как отмечено @kos.

5
ответ дан 22 September 2015 в 01:54
  • 1
    @eco_bach В сценарии, Вы заменили бы chromium-browser google-chrome-stable. – jbrock 13 December 2016 в 03:22

Другие вопросы по тегам:

Похожие вопросы: