usando o script bash para classificar o texto em um arquivo

1

Eu gostaria de classificar a saída do multipath -ll em um tipo de arquivo csv usando o script bash. Por exemplo # multipath -ll daria a seguinte saída

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]

O que eu gostaria é criar um arquivo csv que estaria neste formato

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

Estou apenas procurando uma ideia básica de como isso pode ser feito, não o script inteiro. Qualquer ajuda seria muito apreciada.

    
por Linuxnoob339 17.12.2014 / 15:44

1 resposta

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

360060e80056fc30000006fc30000513c,sdcm,sdcn
360060e80056fc30000006fc300005162,sdbu,sdbv
360060e80056fc30000006fc300005127,sdg,sdt
    
por 17.12.2014 / 15:54