Система обертывает строки в файле журнала, если они превышают X символов. Я пытаюсь извлечь различные данные из журнала, но сначала мне нужно объединить все разделенные строки, поэтому gawk может анализировать поля как одну запись.Объединение разделенных линий с awk/gawk
Например:
2012/11/01 field1 field2 field3 field4 fi
eld5 field6 field7
2012/11/03 field1 field2 field3
2012/12/31 field1 field2 field3 field4 fi
eld5 field6 field7 field8 field9 field10
field11 field12 field13
2013/01/10 field1 field2 field3
2013/01/11 field1 field2 field3 field4
Я хочу вернуть
2012/11/01 field1 field2 field3 field4 field5 field6 field7
2012/11/03 field1 field2 field3
2012/12/31 field1 field2 field3 field4 field5 field6 field7 field8 field9 field10 field11 field12 field13
2013/01/10 field1 field2 field3
2013/01/11 field1 field2 field3 field4
Фактическая максимальная длина строки в моем случае это 130. Я неохотно проверить, что длина и использовать getline
присоединиться следующая строка, если есть запись длиной в 130 символов.
После того, как я очистил файл журнала, я также собираюсь хотеть извлечь все соответствующие события, где «соответствующие» могут быть связаны критерии, как:
- «Foo» где-либо в какой-либо поле в записи
- field2 ~/бара | DTN/
- если field1 ~/хуг | а/& & field98 == "0001"
Мне интересно, нужно ли мне запускать две последовательные программы gawk или если я могу объединить все это в одно.
Я в поглазеть новичок и прихожу из не-Unix
Вы можете сделать все это за одну команду awk. Вы бросили нас (ну, по крайней мере, я), попросив сценарий объединить строки, я даже не заметил последней части о том, что вы действительно хотите сделать с данными, которые делают вещи «я могу объединить строки» излишним. –