Превращение нескольких строк в отдельные

У меня ниже 4 строки:

EXTRACT    ETEST  Last Started 2016-03-20 20:56   Status RUNNING  
Checkpoint Lag       00:00:02 (updated 00:00:04 ago)
EXTRACT    PTEST  Initialized   2016-03-31 06:25   Status STOPPED 
Checkpoint Lag       00:00:00 (updated 02:21:09 ago)

Все, что я хочу сделать из них в 2 строки, как показано ниже:

EXTRACT    ETEST  Last Started 2016-03-20 20:56   Status RUNNING Checkpoint Lag       00:00:02 (updated 00:00:04 ago)
EXTRACT    PTEST  Initialized  2016-03-31 06:25   Status STOPPED Checkpoint Lag       00:00:00 (updated 02:21:09 ago)

Что я могу сделать с помощью cat /tmp/glog.lst|xargs -n 14 :

EXTRACT    ETEST  Last Started 2016-03-20 20:56   Status RUNNING Checkpoint Lag       00:00:02 (updated 00:00:04 ago)
EXTRACT    PTEST  Initialized  2016-03-31 06:25   Status STOPPED Checkpoint Lag       00:00:00 (updated 02:21:09 ago)

Но строка 1 имеет 14 полей, а строка 2 - 13 полей.

Проблема заключалась в том, что строка 2 была инициализирована по сравнению с «последним запуском»

Я хочу создать строку с менее чем 14 столбцами по 14 столбцов, установив фиктивные столбцы с помощью или «N» (или) чего-то, чтобы в нем было 14 столбцов, которые способ, которым я могу легко обработать свой сценарий.

Я хочу сделать это окончательно

EXTRACT    ETEST  Last Started  2016-03-20 20:56   Status RUNNING Checkpoint Lag       00:00:02 (updated 00:00:04 ago)
EXTRACT    PTEST  Initialized N 2016-03-31 06:25   Status STOPPED Checkpoint Lag       00:00:00 (updated 02:21:09 ago)

Это то, что мне нужно

$ awk '{ if (FNR%2==1) tmp=$0; else print tmp,$0 }'  /tmp/gglog.lst
EXTRACT    ETEST1  Initialized 2016-03-20 20:56   Status STOPPED Checkpoint Lag       00:00:02 (updated 00:00:09 ago)
EXTRACT    ETEST2  Last Started 2016-03-20 20:56   Status RUNNING Checkpoint Lag       00:00:02 (updated 00:00:04 ago)
EXTRACT    ETEST3  Last Started 2016-03-20 20:56   Status RUNNING Checkpoint Lag       00:00:02 (updated 00:00:09 ago)
EXTRACT    PTEST1  Last Started 2016-03-29 08:46   Status RUNNING Checkpoint Lag       00:00:00 (updated 00:00:02 ago)
EXTRACT    PTEST0  Last Started 2016-03-29 08:46   Status RUNNING Checkpoint Lag       00:00:00 (updated 00:00:05 ago)

Теперь я хочу извлечь значения столбцов Initialized / Last / Started, чтобы они были такими

EXTRACT    ETEST1  2016-03-20 20:56   Status STOPPED Checkpoint Lag       00:00:02 (updated 00:00:09 ago)
EXTRACT    ETEST2  2016-03-20 20:56   Status RUNNING Checkpoint Lag       00:00:02 (updated 00:00:04 ago)
EXTRACT    ETEST3  2016-03-20 20:56   Status RUNNING Checkpoint Lag       00:00:02 (updated 00:00:09 ago)
EXTRACT    PTEST1  2016-03-29 08:46   Status RUNNING Checkpoint Lag       00:00:00 (updated 00:00:02 ago)
EXTRACT    PTEST0  2016-03-29 08:46   Status RUNNING Checkpoint Lag       00:00:00 (updated 00:00:05 ago)

или Можем ли мы прервать Initialized to Инициализировать сейчас, т.е. независимо от того, какая строка, которую мы храним, работает. Инициализировано, мы хотим разбить ее на "Init Now"

EXTRACT    ETEST1  Init Now 2016-03-20 20:56   Status STOPPED Checkpoint Lag       00:00:02 (updated 00:00:09 ago)
EXTRACT    ETEST2  Last Started 2016-03-20 20:56   Status RUNNING Checkpoint Lag       00:00:02 (updated 00:00:04 ago)
EXTRACT    ETEST3  Last Started 2016-03-20 20:56   Status RUNNING Checkpoint Lag       00:00:02 (updated 00:00:09 ago)
EXTRACT    PTEST1  Last Started 2016-03-29 08:46   Status RUNNING Checkpoint Lag       00:00:00 (updated 00:00:02 ago)
EXTRACT    PTEST0  Last Started 2016-03-29 08:46   Status RUNNING Checkpoint Lag       00:00:00 (updated 00:00:05 ago)
0
18.11.2018, 08:31
0 ответов

Теги

Похожие вопросы