次の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)
ただし、row1には14個のフィールドがあり、row2には13個のフィールドがあります。
問題は、row2が「Last Start」に初期化されたことです。
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)
それでは、初期化/最後/開始列の値を取り出し、次のように見せたいと思います。
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)
それとも、「初期化」を中断して「すぐに初期化」できますか?アーカイブした行が初期化されていても、これを「今の初期化」に分類したいと思います。
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)
ベストアンサー1
2つずつマージするには:
awk '{ if(FNR%2==1) tmp=$0; else print tmp,$0 }' tmp/glog.lst
Initialized
次に置き換えるInit Now
:sed 's/Initialized/Init Now/' tmp/glog.lst
両方の操作を同時に実行するには、パイプを使用して接続します。
awk '{ if(FNR%2==1) tmp=$0; else print tmp,$0 }' tmp/glog.lst | sed 's/Initialized/Init Now/'