Как разобрать строку, используя bash shell?

Рейтинг: 1Ответов: 1Опубликовано: 20.02.2015

Есть файл со строками вида:

< [2015-02-19  13:06:10.299] [GS:199] [LN:1] [LT:A] [ADR:.B-5918] [ACARS:10] [SZ:83] [CRC:N] [UD:D] [SQP:0]

< [2015-02-19  13:06:28.674] [GS:199] [LN:1] [LT:A] [ADR:] [ACARS:SQ] [SZ:74] [CRC:Y] [UD:U]

< [2015-02-19  13:06:36.834] [GS:199] [LN:1] [LT:A] [ADR:.D-AIHF] [ACARS:Q0] [SZ:28] [CRC:Y] [UD:D] [SQP:0]

Необходимо разобрать строки и занести значения в соответствующие переменные:

1) время в первых квадратных скобках;
2) в переменную gs ее значение из вторых скобок;
3) в переменную ln ее значение из третьих скобок и т.д.

Некоторые переменные могут отсутствовать в некоторых строчках (в примере выше во второй строке отсутствует переменная sqp).

Помогите или направьте в сторону того, чем это можно разобрать.
Заранее спасибо.

Ответы

▲ 3Принят
$ IFS='[]' read sp time sp gs sp ln sp etc <<< '[2015-02-19 13:06:36.834] [GS:199] [LN:1] [LT:A] [ADR:.D-AIHF] [ACARS:Q0] [SZ:28] [CRC:Y] [UD:D] [SQP:0]'
$ echo $time/$gs/$ln/$etc
2015-02-19 13:06:36.834/GS:199/LN:1/LT:A] [ADR:.D-AIHF] [ACARS:Q0] [SZ:28] [CRC:Y] [UD:D] [SQP:0]
$ help read

там ещё много полезного прочитаете