Написание сценария bash, который сравнивает два файла журнала, сравнивая временные метки - PullRequest
1 голос
/ 27 июля 2011

У меня проблемы с выяснением того, как сопоставлять, чтобы найти совпадения в двух разных файлах при сравнении временных меток. Поля, которые я хочу сопоставить, имеют формат:

26 июля 09: 33: 02

Я попытался прочитать файл построчно и использовать awk '{print $1,$2,$3}', который получает и сохраняет метку времени только в одном из файлов. Я искал вокруг и видел этот пример:

awk 'FNR==NR{!a[$3]++;next }{ b[$3]++ }
END {
 for(i in a) {
  for(k in b) {
   if (a[i]==1 && i ~ k ) { print i }
   }
  }
 }' $FILE $FILE2

Какая сорта работает, но сейчас она проносится у меня над головой. Два файла можно найти в ваших / var / log / syslog и /var/log/auth.log (с использованием Ubuntu 11.04)

Я искал другие примеры и не смог применить его к своему приложению. Спасибо

1 Ответ

0 голосов
/ 27 июля 2011

Предполагая, что $FILE и $FILE2 содержат список меток времени, и вы можете отформатировать метку времени таким образом, чтобы она отделялась от других полей пробелами:

join <(sort -k 1b,1 $FILE) <(sort -k 1b,1 $FILE2)

Выходными данными будут все метки времени, существующие в обоих файлах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...