Separação de informações usando ";" (bloco de dados)

1. Separação de informações usando ";" (bloco de dados)

Rafael
megabr

(usa Solaris)

Enviado em 22/08/2008 - 14:51h

Tenho um arquivo que parte do conteúdo é a seguinte:

Zone: LIB_8500_BKPPRD19_HBA-5597_LTO4-561E
Zone Member: 21:01:00:E0:8B:B1:55:97
Zone Member: 50:01:04:F0:00:79:56:1E
Zone: LIB_8500_BKPPRD19_HBA-CF8A_LTO3-5630
Zone Member: 21:01:00:E0:8B:B2:CF:8A
Zone Member: 50:01:04:F0:00:79:56:30
Zone: LIB_8500_CELERRA_HBA-1A40_LTO-5663
Zone Member: 50:01:04:F0:00:79:56:63
Zone Member: 50:06:01:62:10:60:1A:40
Zone: LIB_8500_CELERRA_HBA-A338_LTO-563C
Zone Member: 50:01:04:F0:00:79:56:3C
Zone Member: 50:06:01:62:10:60:1A:40
Zone: LIB_8500_NETPRD02_HBA-739B_LTO-56AB
Zone Member: 20:00:00:E0:8B:1A:73:9B
Zone Member: 50:01:04:F0:00:8A:CF:A0
Zone Member: 50:01:04:F0:00:79:56:AB
Zone: LIB_8500_NETPRD03_HBA-B999_LTO-5600
Zone Member: 20:00:00:E0:8B:0E:B9:99
Zone Member: 50:01:04:F0:00:79:56:00

Estou tentando desenvolver um script que pegue as informações:

LIB_8500_BKPPRD19_HBA-5597_LTO4-561E
21:01:00:E0:8B:B1:55:97
50:01:04:F0:00:79:56:1E


e as coloque separadas por ponto e vírgula, ficando assim:

LIB_8500_BKPPRD19_HBA-5597_LTO4-561E;21:01:00:E0:8B:B1:55:97;50:01: 04:F0:00:79:56:1E

Ou seja, cada vez que ele encontrar a palavra "Zone:" ele tem que aglomerar as informações do bloco anterior...

Lembrando que podem existir mais de 2 "Zone Member" ...

Obrigado por qualquer ajuda!



  


2. Re: Separação de informações usando ";" (bloco de dados)

Jefferson Diego
Diede

(usa Debian)

Enviado em 23/08/2008 - 17:31h

#! /bin/bash

cat $1 | while read arq; do
if [ "$(echo $arq| cut -d ":" -f1 )" = "Zone" ]; then
echo
echo -n $(echo $arq| cut -d ":" -f2)";"
fi

if [ "$(echo $arq| cut -d ":" -f1 )" = "Zone Member" ]; then
echo -n $(echo $arq| cut -b 13-)";"
fi
done


Dê permissão de execução e rode usando o nome do arquivo em que estão os dados como argumento 1.


3. Re: Separação de informações usando ";" (bloco de dados)

Jefferson Diego
Diede

(usa Debian)

Enviado em 01/09/2008 - 14:45h

Apropósito...
Eu esqueci de falar:
Salve o código acima como script (exemplo: scipt.sh), dê permissão de execução e use assim:
script <arquivo> (onde "arquivo" é o arquivo com os dados a serem filtrados)






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts