2016-09-14 5 views
-3

こんにちは、私は生の出力の下に持ってアペンド2つのパラ側、awkの

チャンク-1

Mod Ports Card Type        Model    Serial No. 
---+-----+--------------------------------------+------------------+----------- 
1  8 Sup 8-E 10GE (SFP+), 1000BaseX (SFP) WS-X45-SUP8-E  CAT1903LAEN 
3 48 10/100/1000BaseT Premium POE E Series WS-X4748-RJ45V+E CAT1743L2JQ 

M MAC addresses     Hw Fw   Sw    Status 
--+--------------------------------+---+------------+----------------+--------- 
1 c08c.60ef.f340 to c08c.60ef.f347 1.2 15.1(1r)SG7 03.09.01.E.112 Ok 
3 24e9.b335.bfd0 to 24e9.b335.bfff 1.3 

チャンク-2

Mod Ports Card Type        Model    Serial No. 
---+-----+--------------------------------------+------------------+----------- 
1  8 Sup 8-E 10GE (SFP+), 1000BaseX (SFP) WS-X45-SUP8-E  CAT1903LAEN 
3 48 10/100/1000BaseT Premium POE E Series WS-X4748-RJ45V+E CAT1743L2JQ 

M MAC addresses     Hw Fw   Sw    Status 
--+--------------------------------+---+------------+----------------+--------- 
1 c08c.60ef.f340 to c08c.60ef.f347 1.2 15.1(1r)SG7 03.09.01.E.112 Ok 
3 24e9.b335.bfd0 to 24e9.b335.bfff 1.3        Ok 

は組み合わせて作成したいです単一の行 予想される出力

しかし、すべてを一度に行うと、チャンク2の1から始まるすべての行も、チャンク1の行とともに追加されます。 最初にチャンク1を処理し、次にチャンク2を処理したいと考えています。

単一ラインとしてこれを仮定する:

チャンク1出力

​​

別の行:

3 48 10/100/1000BaseT Premium POE E Series WS-X4748-RJ45V+E CAT1743L2JQ 3 24e9.b335.bfd0 to 24e9.b335.bfff 1.3 

同様の方法が同様にチャンク2出力を必要とします。

+0

その同じファイルインチ – user1220402

答えて

1

あなたはこのawkを使用することができます。

awk '$1 ~ /^[0-9]/{a[$1]=a[$1]?a[$1] FS $0 : $0} END{for(v in a)print a[v]}' file 
+0

これは同じファイル内に複数のチャンクがありますが、一度に1つずつ処理したい場合です。何がここで変更する必要がありますか? – user1220402

+0

@ user1220402、「一度に1つずつ処理する」とはどういう意味ですか?サンプル入力を投稿します。 – sat

+0

自分自身で自分の質問を編集しましたが、あなたはコメントが長すぎることを確認できます。 – user1220402

関連する問題