У меня есть большой файл журнала.удалить некоторые строки в файле журнала
После удаления метки времени каждой строки, сортировать его cat logfile | sort -u > logfile
, так что журналы являются чистыми и организованы как
failed to correct PL.ASBF..HHZ.2011.348 because of divided by zero
failed to correct PL.ASBF..HHZ.2011.349 because of divided by zero
failed to correct PL.ASBF..HHZ.2011.350 because of divided by zero
.
. (lines not shown here)
.
failed to correct PL.ASBF..HHZ.2015.364 because of divided by zero
failed to correct PL.ASBF..HHZ.2015.365 because of divided by zero
.
.
. (lines not shown here)
.
.
failed to correct PL.HSPB..HHZ.2011.128 because of Illegal format
failed to correct PL.HSPB..HHZ.2011.129 because of Illegal format
failed to correct PL.HSPB..HHZ.2011.130 because of Illegal format
.
. (lines not shown here)
.
failed to correct PL.HSPB..HHZ.2014.364 because of Illegal format
failed to correct PL.HSPB..HHZ.2014.365 because of Illegal format
я могу получить регистрируемые элементы (например, PL.HSPB
в приведенном выше примере) по
grep -oE " [0-9A-Z]*\.[0-9A-Z]*" logfile | sort -u
Однако, я также хочу узнать информацию о дате и сделать ее более ясной, я хочу удалить промежуточные линии. Например,
failed to correct PL.HSPB..HHZ.2011.128 because of Illegal format
failed to correct PL.HSPB..HHZ.2011.129 because of Illegal format
failed to correct PL.HSPB..HHZ.2011.130 because of Illegal format
.
. (lines not shown here)
.
failed to correct PL.HSPB..HHZ.2014.364 because of Illegal format
failed to correct PL.HSPB..HHZ.2014.365 because of Illegal format
после удаления становится
failed to correct PL.HSPB..HHZ.2011.128 because of Illegal format
failed to correct PL.HSPB..HHZ.2014.365 because of Illegal format
т.е. для элемента, только первые и последние строки сохраняются (цифры в год и юлианский день).
Есть ли какая-нибудь командная оболочка, чтобы сделать это с легкостью?
@ shellter. Дата в файле журнала, например '2014.365', равна 'year.jday'. Нет необходимости в компьютере julian date из месяца и дней. – Lee
Доу, я пропустил, что Y.Jday был в ваших исходных данных. Удачи. – shellter
Просто добавьте еще один 'grep' в ваш конвейер, который производит ваш текущий выход? 'grep"^не удалось подключиться "logfile | grep -oE "[0-9A-Z] * \. [0-9A-Z] *" | sort -u'? Удачи. – shellter