Ваш сценарий не должен делать ничего особенного с разделителями записей или полей. Учитывая пример ввода и вывода, скрипту нужно найти только два из четырех типов строк, то есть
test/snmp/result/08-28-2016_12-30/AAAAA/hostname01_192.168.1.1
(что составляет в основном , разделенных символами /
) и
| comstring1 - Valid credentials
, которому может соответствовать регулярное выражение.
Сценарий должен соответствовать первому типу строки, например,
/^.*\/.*\/.*\// {
split($0, "/", fields);
# ...more work needed :-)
, и использовать split
, чтобы разбить его на массив на основе символа /
и sub
, substr
и index
, чтобы разделить оставшуюся часть строки (отдельные имя хоста и IP-адрес из «hostname01_192.168.1.1»
).
После этого вы получите переменные, которые будут перенесены в printf
, выполненную после извлечения сообщения из второго типа строки. Это будет, возможно, 30 строк сценария