shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Como pegar uma parte do texto(não uma linha) em um ar


From: Celso Macêdo
Subject: Re: [shell-script] Como pegar uma parte do texto(não uma linha) em um arquivo que contém uma expressão
Date: Mon, 7 May 2018 01:05:23 -0300

Valeu, Paulo!!!

Agora eu vou estudar sua solução, pois não conhecia esses detalhes todos do sed.

Se alguém tiver outra alternativa usando outro comando, ou até um sed diferente, eu quero aprender rsrsrsrsrs

[]'s
Celso

Em 6 de maio de 2018 21:53, address@hidden [shell-script] <address@hidden> escreveu:
 

É verdade, no último bloco de texto não funciona porque a última linha
não começa com número.

Depois de carregar a última linha (algum comando 'n'), o comando
's/^[0-9]/&/' falha, então ao invés de ir para a marca 'b',
volta para a marca 'a', mas o arquivo já acabou, então o comando 'n'
não lê mais nenhuma linha e encerra o script sed naquele ponto.

O conserto é colocar um teste pra saber se a última linha foi lida.
Se foi, pula para a marca 'b'.
'/^[0-9]/ {:a;H;$bb;n;s/^[0-9]/&/;tb;ba;:b;x;s/homologa/&/;tc;n;ba;:c;p;q}'
(talvez eu tenha tomado o caminho mais complicado nesse sed rs)

Outra falha pode ser se alguma linha das máquinas começar com número,
nesse caso o casamento do ip tem que ser mais específico.
Abraços Paulo

On 06-05-2018 18:40, Celso Macêdo address@hidden [shell-script] wrote:

> Paulo,
>
> Quase isso....
>
> Mas não funciona com a última... "homologa"
>
> []'s
> Celso
>
> Em 6 de maio de 2018 11:17, address@hidden <mailto:address@hidden.br> [shell-script]
> <address@hidden.br <mailto:shell-script@yahoogrupos.com.br>> escreveu:
>
> __
>
> Olá Celso, solução com sed.
>
> sed -nr '/^[0-9]/ {:a;H;n;s/^[0-9]/&/;tb;ba;:b;x;s/xen01/&/;tc;n;ba;:c;p;q}' maquinas.txt
> Abraços Paulo
>
>
>

> On 05-05-2018 23:07, Celso Macêdo address@hidden <mailto:address@hidden> [shell-script] wrote:
> > Boa noite, pessoal!
> >
> > Supondo que tenhamos o arquivo maquinas.txt abaixo:
> >
> > 10.10.1.1
> >
> > maquina 1 - zen01
> >
> > maquina 2 - web01
> >
> > maquina 3 - trend01
> >
> >
> > 10.10.1.5
> >
> > maquina 4 - xen01
> >
> > maquina 5 - rede01
> >
> > maquina 6 - fs1c1
> >
> > maquina 7 - arcserve
> >
> >
> > 10.10.1.10
> >
> > maquina 8 - teste
> >
> > maquina 9 - desenvolvimento
> >
> >
> > 10.10.1.15
> >
> > maquina 10 - homologa
> >
> > Como fazer uma busca numa determinada expressão e apresentar todo um trecho de texto que está entre o
> ip e uma
> > linha vazia?
> >
> > Exemplo: uma busca de xen01 deve mostrar:
> >
> > 10.10.1.5
> >
> > maquina 4 - xen01
> >
> > maquina 5 - rede01
> >
> > maquina 6 - fs1c1
> >
> > maquina 7 - arcserve
> >
> > OBS: Você não sabe quantas linhas antes e quantas depois precisará exibir para alcançar o resultado acima,
> > pois o número de máquinas é variável
> >
> > Valeu!!!
> >
> > Celso
> >
> >
> > ----------------------------------------------------------
> > Enviado por: =?UTF-8?Q?Celso_Mac=C3=AAdo?= <address@hidden <mailto:address@hidden>>
> > ----------------------------------------------------------
>
>
>
> ----------------------------------------------------------
> Enviado por: =?UTF-8?Q?Celso_Mac=C3=AAdo?= <address@hidden>
> ----------------------------------------------------------



reply via email to

[Prev in Thread] Current Thread [Next in Thread]