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: Julio C. Neves
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 06:31:28 -0300

Talvez seja mais fácil começar o sed inserindo uma linha fictícia no final do arquivo e terminá-lo removendo essa linha

Abraços,
Julio

» Não tem tempo para fazer um curso presencial?
» Na sua cidade não tem nenhum bom curso de Linux?
» O treinamento está muito caro?
O melhor de todos em EAD é http://www.dicas-l.com.br/cursos/psl/

Damos treinamento em sua empresa com certificado
e nota fiscal por um preço, no mínimo, 50% abaixo
de qualquer curso.

​​
Nosso time de instrutores in company é formado somente por
autores
​ ​
de Best Sellers
​ ​
​laureados ​sobre os temas. P. exemplo:

Shell básico e Programação em Shell Julio Neves
Bacula Heitor Medrado
Zabbix Adail Host
Produção Gráfica e Videografismo Cadunico










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]