Pular para o conteúdo

Manipular arquivos.

Responder tópico
  • Denunciar
  • Indicar

1. Manipular arquivos.

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.

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder