[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Criar lista apartir de um arquivo
From: |
jimmy |
Subject: |
Re: [shell-script] Criar lista apartir de um arquivo |
Date: |
Mon, 6 May 2013 15:13:17 -0300 |
User-agent: |
mutt-ng/devel-r804 (Linux) |
Saudações Thiago,
On Mon, May 06, 2013 at 03:17:06PM -0000, thiago wrote:
> Bom dia pessoal,
>
> Estou tentando criar uma lista, apartir da leitura de um arquivo.
>
> Tenho arquivo no seguinte formato:
> OK: PostgreSQL is Down Trigger: PostgreSQL is Down
> Item values:
>
> 1. POSTGRES Status
> 2. *UNKNOWN* (*UNKNOWN*:*UNKNOWN*): *UNKNOWN*
> 3. *UNKNOWN* (*UNKNOWN*:*UNKNOWN*): *UNKNOWN*
> -----------
> PROBLEM: HTTP service is down on Debian_Local Trigger: HTTP service
> Item values:
>
> 1. HTTP service is running
> 2. *UNKNOWN* (*UNKNOWN*:*UNKNOWN*): *UNKNOWN*
> 3. *UNKNOWN* (*UNKNOWN*:*UNKNOWN*): *UNKNOWN*
>
> Preciso gerar uma lista separando cada laço pelo sinal de menor (-----------)
> Um exemplo que eu fizer assim: for i in LISTA; do echo $i; done ele deve me
> mostrar
> PROBLEM: HTTP service is down on Debian_Local Trigger: HTTP service
> Item values:
>
> 1. HTTP service is running
> 2. *UNKNOWN* (*UNKNOWN*:*UNKNOWN*): *UNKNOWN*
> 3. *UNKNOWN* (*UNKNOWN*:*UNKNOWN*): *UNKNOWN*
>
> Muito obrigado e um grande abraço
> Atenciosamente,
> Thiago M. Figueiredo
Se entendi, o intuito é trabalhar com o bloco ou "parágrafo" inteiro que
no seu caso é separado por hífens. Vou tentar aproveitar a abordagem que
você iniciou para propor uma solução:
while read l;do # lê uma linha por vez
i="$i\n$l"; # concatena as linhas
if [ "x$l" = 'x-----------' ]; then # "chegamos no separador?"
echo -e "$i" # imprime o parágrafo
i=''
break
fi
done < arquivo.txt
--
"Não manejo bem as palavras
Mas manipulo bem as strings."
------------------------------