Я хочу искать строки с отметками времени в файле журнала (не все строки имеют временные метки), и я также хотел бы сохранить эти временные метки, чтобы я мог видеть временные интервалы, активный день номер и т.д.grep сопоставил строки в один файл и сопоставил строки в другом файле
201 3083560 2013-10-21T13:57:55.334+0200 time|bootup
202 3083560 2013-10-21T13:57:55.334+0200 startup
204 3083579 2013-10-21T13:57:55.353+0200 system|device
205 3083579 2013-10-21T13:57:55.353+0200 system|manufacturer
206 3083579 2013-10-21T13:57:55.353+0200 system|model
Я могу выполнить команды:
grep -P '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}[+-]\d{4}\t' usr.log > file1.txt
grep -Po '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}[+-]\d{4}\t' usr.log > file2.txt
И мой вопрос, могу ли я работать Grep только один раз, чтобы получить то, что мне нужно с некоторыми трубами? Шаблон остается таким же, поэтому я думаю, что grep однажды может сэкономить некоторое время, так как у меня есть 30k отдельных файлов журнала пользователя.
* Полезно сохранить вкладку в конце шаблона, потому что в некоторых строках есть значения времени в последнем столбце, поэтому мне нужно исключить \d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}[+-]\d{4}\n
.
* Моя среда - CentOS 7, grep (GNU) 2.20.
Большое спасибо!
Вам не нужно запускать его дважды, вы можете использовать 'Grep -oP' в' usr.log' непосредственно. – Inian
Также ваше регулярное выражение '\ d {4} - \ d {2} - \ d {2} T \ d {2}: \ d {2} \ d {2} \. \ D {3} [+ -] \ d {4} \ t' или '\ d {4} - \ d {2} - \ d {2} T \ d {2}: \ d {2} \ d {2}. \ d {3} [+ -] \ d {4} \ n' не соответствует строкам в вашем примере ввода файла – Inian
Спасибо! Я забыл поставить еще: в шаблоне. Теперь я исправил это. Но как это можно сделать за один проход? Я хочу также сохранить файл1.txt. – leoce