Моя программа принимает текстовый файл вместо stdout в качестве своего вывода. Он постоянно добавляет новые строки в файл. Я могу привязывать файл каждый раз, когда хочу получить последние строки содержимого. Но теперь я хочу, чтобы добавленный контент отображался на моем терминале одновременно, как будто моя программа принимала stdout в качестве своего вывода.Как распечатать последнее добавленное содержимое текстового файла?
Я узнал некрасивое решение: напечатать новое прилагаемое содержание каждые пять секунд на резервное копирование содержимого текстового файла на пять секунд раньше и дифф текущего содержимого с ним, как ниже:
#!/bin/sh
# show the appended text of a file every 5 seconds
echo `pwd`;
while true
do
cp $1 $1.earlier;
sleep 5;
echo `date`;
diff $1 $1.earlier;
done
Как насчет использования хвоста -f? –
О, МОЙ !!! Я никогда не знал, что у хвоста есть опция -f! Спасибо, Рубенс, за помощь в форматировании кода. Спасибо, Том Рон, за то, что я сказал правильный ответ так быстро! –