2015-01-12 3 views
0

Файлы создаются с регулярным интервалом с именем, которое не содержит метки времени.Как сгенерировать файлы за последние 24 часа

Как я могу grep/фильтровать любой текст из этих файлов, созданных за последние 24 часа или с датой создания файлов?

/data/logs/file*.log 
+0

так мой ответ работает на вас? Если да, помните, что вы можете принять его, нажав на галочку рядом с ответом, чтобы переключить его с полого на зеленый. См. [Справочный центр> Задать вопрос] (http://stackoverflow.com/helpcenter/someone-answers), если у вас есть какие-либо сомнения! – fedorqui

ответ

2

Вы можете использовать find, чтобы получить файлы в /data/logs/ на форме file*log, которые были изменены в течение последних 24 часов:

find /data/logs/ -mtime -1 -name file*log 

Тогда просто grep через exec:

find /data/logs -mtime -1 -name file*log -exec grep "whatever" {} \; 

Если вы также хотите указать имя файла, используйте -Has suggested by Mark Setchell ->... -exec grep -H "whatever" {} \;.

Кредиты до Scripts: find the files have been changed in last 24 hours.

+0

Возможно, стоит отметить, что 'grep -H' может облегчить просмотр имен файлов. –

+0

@MarkSetchell правдиво и полезно. Я только что обновил ответ с вашим предложением. Благодаря! – fedorqui

Смежные вопросы