joao_vitorino
(usa Red Hat)
Enviado em 24/03/2014 - 11:46h
Galerinha do mal. É o seguinte:
Tenho um arquivos com dados conforme dos dados abaixo.
Nome;Modelo;Sistema Operacional;Processador;memória;Unidade de disco
microteste1;VMware, Inc.;VMware Virtual Platform;NULL;XXXXXXX1;openSUSE 11.3 (x86_64);Intel(R) Xeon(R) CPU E5430 @ 2.66GHz;3963;Hard Disk 1
server1;VMware, Inc.;VMware Virtual Platform;NULL;XXXXXXXX;openSUSE 11.3 (x86_64);Intel(R) Xeon(R) CPU E5430 @ 2.66GHz;3963;Hard Disk 1
serve1;VMware, Inc.;VMware Virtual Platform;NULL;XXXXXXXX;openSUSE 11.3 (x86_64);Intel(R) Xeon(R) CPU E5430 @ 2.66GHz;3963;Hard Disk 2
server2;VMware, Inc.;VMware Virtual Platform;NULL;XXXXXXX;openSUSE 11.3 (x86_64);Intel(R) Xeon(R) CPU E5430 @ 2.66GHz;3963;Hard Disk 1
...
No caso da máquina server1, reparem que ela possui dois HD (Hard Disk 1 e Hard Disk 2), como faço para editar o arquivo de forma que eu consiga colocar todos do dados do server1 em uma única linha? Coloco os dados diferentes no fim da linha referente ao server 1.
O Arquivo deve ficar assim:
Nome;Modelo;Sistema Operacional;Processador;memória;Unidade de disco
microteste1;VMware, Inc.;VMware Virtual Platform;NULL;XXXXXXXX;openSUSE 11.3 (x86_64);Intel(R) Xeon(R) CPU E5430 @ 2.66GHz;3963;Hard Disk 1
server1;VMware, Inc.;VMware Virtual Platform;NULL;XXXXXXXXX;openSUSE 11.3 (x86_64);Intel(R) Xeon(R) CPU E5430 @ 2.66GHz;3963;Hard Disk 1, Hard Disk 2
server2;VMware, Inc.;VMware Virtual Platform;NULL;XXXXXXXXX;openSUSE 11.3 (x86_64);Intel(R) Xeon(R) CPU E5430 @ 2.66GHz;3963;Hard Disk 1
Sei que posso ler linha a linha com o for e apos usar o cut para pegar o ultimo valor depois de ";"
c1='cut -d ';' -f 6'
e então usar o sed para inserir esse valor ao fim da linha
c1='cut -d ';' -f 6'
sed 's/$/\$c1/'
.
Mas não sei como fazer isso apenas para as linhas em que o Nome se repetir, ainda mais porque tem máquina nessa lista com até 4 HD's.