Linuxで行から列に変換

Linuxで行から列に変換

次の出力を提供するスクリプトがあります。

10.230.146.10:   Terminal ID        Gol
10.230.146.10:   Far End ID            pol
10.230.146.10:   Number of E1s     4E1s
10.230.146.10:    Packet link capacity  63Mbit/s

出力が必要です。

10.230.146.10.  Terminal ID.  Far End ID.  Number of E1s.   Packet link Capacity
Gol.      Pol.    4E1.     63Mbit/s

答え1

これは働きます:

awk '{if($1 == ip) {$1=""; printf "%s ", $0} else {ip=$1; printf "\n%s ", $0;}}' input.txt

出力の先頭に追加の改行を印刷しますが、それは問題ではないと思います。

次の入力例の場合:

10.230.146.10: A B
10.230.146.10: C D
10.230.146.11: E F
10.230.146.11: G H

このスクリプトは以下を生成します。

10.230.146.10: A B  C D 
10.230.146.11: E F  G H 

関連情報