Script Bash para editar texto em formato csv

1

Como parte de um script bash de inventário, estou verificando os módulos SFP e adicionando-os a um arquivo .csv. O formato atualmente é assim, com comprimentos variados:

RO01;1000BaseSX SFP;1000BaseSX SFP
RO02;1000BaseSX SFP;1000BaseSX SFP;1000BaseLX SFP

Meu objetivo é fornecer a cada linha após a primeira linha própria junto com a primeira linha. Então a linha acima deve ficar assim:

RO01;1000BaseSX SFP
RO01;1000BaseSX SFP
RO02;1000BaseSX SFP
RO02;1000BaseSX SFP
RO02;1000BaseLX SFP

Como eu poderia conseguir isso usando processamento de texto?

    
por Sebbeleu 22.06.2015 / 09:37

1 resposta

3

Possível solução poderia ser usar awk :

awk -F";" '{ for (i = 2; i <= NF; i++) { printf("%s;%s\n", $1, $i); } }' file

Com awk -F";" , definimos FS (separador de campo) como ; . Então, para cada linha (registro), começamos do campo 2 para o último campo ( NF ): for (i = 2; i <= NF; i++) e imprimimos o campo 1 e o campo atual ( $i ).

    
por 22.06.2015 / 09:42