GNU (Linux) использует следующее :
tail -n 10 <logfile> | tac
tail -n 10 <logfile>
выводит последние 10 строк файла журнала и tac
(кошка записана в обратном направлении) меняет порядок в обратном порядке.
BSD (OS X) из tail
использует параметр -r
:
tail -r -n 10 <logfile>
Для обоихВ случаях вы можете попробовать следующее:
if hash tac 2>/dev/null; then tail -n 10 <logfile> | tac; else tail -n 10 -r <logfile>; fi
ПРИМЕЧАНИЕ: В руководстве GNU указано, что опция BSD -r
"может только обратить файлы назадони не больше его буфера, который обычно составляет 32 КиБ, и что tac
более надежно.Если размер буфера является проблемой, и вы не можете использовать tac
, вы можете рассмотреть возможность использования @ ata's answer , который записывает функциональность в bash.