Bashスクリプトを使用したファイルのテキストの並べ替え

Bashスクリプトを使用したファイルのテキストの並べ替え

bashスクリプトを使用して、multipath -llの出力をcsv型ファイルにソートしたいと思います。たとえば、 #multipath -ll は次のような出力を提供します。

360060e80056fc30000006fc30000513c dm-41 HITACHI,OPEN-V
 \_ 4:0:0:45 sdcm 69:160 [active][ready]
 \_ 3:0:0:45 sdcn 69:176 [active][ready]
360060e80056fc30000006fc300005162 dm-31 HITACHI,OPEN-V
 \_ 3:0:0:36 sdbu 68:128 [active][ready]
 \_ 4:0:0:36 sdbv 68:144 [active][ready]
360060e80056fc30000006fc300005127 dm-56 HITACHI,OPEN-V
 \_ 3:0:0:6  sdg  8:96   [active][ready]
 \_ 4:0:0:6  sdt  65:48  [active][ready]

私が望むのは、この形式のcsvファイルを作成することです。

LUN ID no., SCSI DEVICE1, SCSI DeVICE2
360060e80056fc30000006fc300005127,sdg,sdt
360060e80056fc30000006fc300005162,sdbu,sdbv

スクリプト全体ではなく、これを達成する方法の基本的なアイデアを探しているだけです。どんな助けでも大変感謝します。

ベストアンサー1

> awk '/^[^ ]/ {printf "\n%s",$1; next}; { printf ",%s",$3; }' file

360060e80056fc30000006fc30000513c,sdcm,sdcn
360060e80056fc30000006fc300005162,sdbu,sdbv
360060e80056fc30000006fc300005127,sdg,sdt

おすすめ記事