Я пытаюсь вставить вывод tshark в базу данных MySQL. Выход Tshark имеет формат:AWK с несколькими разделителями
VALUE1:VALUE2_1|VALUE2_2|VALUE2_3:VALUE3_1,VALUE3_2,VALUE3_3:VALUE4:VALUE5
В настоящее время я пытаюсь перенаправить вывод через трубу СЭД и AWK:
|sed -u "s/^/insert into data (item1, item2, item3, item4, item5) values('/g"|awk -F":" -v OFS=',' '{print $1,$2}'
, но только некоторые значения необходимы.
Так что результирующая команда должна выглядеть следующим образом:
insert into data (item1, item2, item3, item4, item5) values(value1,value2_2,value3_2,value4,value5)
И некоторые примеры из среды разработки:
Tshark постоянно генерирует эти виды продукции:
1418043291.268345000:14567744356|4|8v95489464:DC0289001840,NNN100,DC206286661:03612037:ON1774B01
1418043291.201703000:14567744356|0|6b10992051:DC0289001840,NNN120,DC081276320:04891241:ON891N619
, где
- 1418043291,268345000 - VALUE1
- 14567744356 | 4 | 8v95489464 - VALUE2
- DC0289001840, NNN100, DC206286661 - VALUE3
- 03612037 - Value4
- ON1774B01 - VALUE5
Для VALUE2 и Value3 заинтересован только средний ряд, то есть «4» для VALUE2 и «NN100» для VALUE3. Все остальные строки из этих значений (значение2, Value3) не являются необходимыми для дальнейших расчетов с выходом стороны, поэтому они должны быть отброшены, и в результате команда вставки сусло выглядит следующим образом:
insert into data (item1, item2, item3, item4, item5) values(1418043291.268345000,4,NNN100,03612037,ON1774B01)
Не могли бы вы посоветовать , как изменить команду AWK для вставки значений:
VALUE1:VALUE2_2:VALUE3_2:VALUE4:VALUE5 ?
ясно, что вы хотите, но немного неясно, как вы туда попадете: какое общее правило знать, какие поля нужно выбирать, а какие следует отбрасывать? – fedorqui
Каким критериям присваивается «хорошее» значение? почему значение 2_1, value2_3 и value3_3 отбрасываются (каждый с разным разделителем pre или post типа, но тот же, что и один из другого, который берется)? Это просто произвольный заказ? – NeronLeVelu
fedorqui, NeronLeVelu, спасибо за ответ! Я добавил несколько более подробных объяснений – Alex