Объедините sed truncate x lines в команду поиска - PullRequest
0 голосов
/ 06 сентября 2018

У нас есть большой файл журнала в одном и том же месте на нескольких серверах, и я хочу создать задание cron для усечения файла до последних 100 000 строк.

работает следующая команда:

sed -i 1,$(($(wc -l < /root/server123.example.com.log) -100000))d /root/server123.example.com.log

Но имя хоста на каждом сервере отличается (server1, server2, server3 и т. Д.), И я хотел бы иметь одну команду, которую я могу вставить в каждый файл cron. Во время тестирования я не был уверен, как получить подстановочный знак в приведенной выше команде.

Я думаю, что лучше всего было бы объединить это с командой поиска, но я не знаю, как это сделать ..

find /root/server*.example.com.log -type f -exec sed <NOT SURE..> \;

Любая помощь будет оценена.

1 Ответ

0 голосов
/ 06 сентября 2018

Во время тестирования я не знал, как получить подстановочный знак в приведенной выше команде.

Если на каждом сервере есть только один файл журнала, вы можете просто вставить шаблон:

sed -i 1,$(($(wc -l < /root/server*.example.com.log) -100000))d /root/server*.example.com.log
...