我想使用 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