Не удается перенаправить вывод из sed

Я получаю вывод из часов через sed для удаления ведущих нулей из чисел. Это выглядит так:

clock -sf 'S%A, %B %d. %I:%M %P' | sed 's/\b0\+\([0-9]\+\)/\1/g' 

Это прекрасно работает и дает результат, который я хочу.

Однако, когда я пытаюсь перенаправить вывод в файл, в файл ничего не записывается. Не работает следующее.

 clock -sf 'S%A, %B %d. %I:%M %P' | sed 's/\b0\+\([0-9]\+\)/\1/g' > testfile 

Ничего не написано в testfile. Что я делаю не так?

Вы столкнулись с проблемой буферизации вывода. sed обычно буферизует свой вывод, когда не записывается на терминал, поэтому ничто не записывается в файл до тех пор, пока буфер не заполнится (вероятно, каждые 4 Кбайта).

Используйте параметр -u для sed для вывода без буфера.

 clock -sf 'S%A, %B %d. %I:%M %P' | sed -u 's/\b0\+\([0-9]\+\)/\1/g' > testfile