Кінцевий хвіст -f після друку n рядків


10

У мене є таке.

  1. Процес запису журналів Java у файл
  2. Сценарій оболонки, що запускає процес Java.

Мені потрібно прочитати файл журналу після запуску процесу Java, щоб перевірити правильність запуску.

Я спробував, tail -fале це залишається додаватися назавжди. Мені потрібно tailзупинитись після друку n рядків. Є такий -nваріант, як варіант для previuos ліній?


1
Чи очищається ваш файл журналу щоразу після запуску сценарію оболонки Java?
c0rp

Я використовую log4j з режимом додавання для запису файлу журналу. Він обертається після збільшення розміру файлу до 10 Мб.
theShadow89

Відповіді:


24

Ви можете направити висновок tail -fв headобмежити кількість ліній , показаних:

tail -f [PATH] | head -n 100

щоб показати лише 100 рядків.


7

Лише нові рядки

З простої tail -fточки, перші 10 рядків - з файлу, як він уже існує:

tail -f file.log | head -30

записує 10 рядків, log.txtколи вона запущена, і 20 (n-10) рядків, які додаються пізніше.

З файлом журналу ви зазвичай використовуєте -f( --follow), щоб побачити рядки, написані в майбутньому.

Щоб побачити лише 30 рядків, які були написані після, tailбуло запущено, обмежте початковий вихід 0:

tail -f -n0 file.log | head -30
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.