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

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

Re: [shell-script] SED - Como parar a consulta na N ocorrência


From: Tiago Peczenyj
Subject: Re: [shell-script] SED - Como parar a consulta na N ocorrência
Date: Tue, 22 Aug 2017 15:12:02 +0200

Ola

vc quer uma maquina de estados, e fazer isso com SED pode até ser possivel, mas eu não sei se seria pratico

vc pode usar alguma linguagem de proposito geral e que seja legivel como AWK e criar uma variavel que incrementa ate o numero que vc quer e ai vc simplesmente "termina".

outra forma é criar um pipe do sed original para um head que vai parar em uma determinada linha, exemplo:

sed 'busca' | head -n 5 

dessa forma apos a quinta linha o processo head vai terminar e vai mandar um SIGPIPE para o sed, que vai terminar também.

para ser mais eficiente talvez vc queira substituir o sed por um grep.

um awk pode fazer em uma tacada só - em SED eu vou ficar devendo, mas certamente tem jeito



2017-08-22 15:04 GMT+02:00 address@hidden [shell-script] <address@hidden>:
 

Opa, pessoal.


Seguinte, existe alguma forma de parar a consulta de uma determinada string na ocorrência N dessa consulta.

Por exemplo:


O arquivo ips.txt tem esse conteúdo:


192.168.1.4 (PC)
192.168.0.25 (PC)
192.168.1.4 (Smartphone)
192.168.0.30 (Smartphone)
192.168.1.40 (PC)
192.168.1.4 (Server)
192.168.1.10 (PC)
192.168.1.50 (Smartphone)
192.168.1.20 (PC)
192.168.0.222 (Server)


O comando sed -n '/\<192.168.1.4\>/p' ips.txt retorna essa saída:


192.168.1.4 (PC)
192.168.1.4 (Smartphone)
192.168.1.4 (Server)


Mas preciso que ele exiba somente a segunda ocorrência ou seja, essa saída:


192.168.1.4 (PC) 
192.168.1.4 (Smartphone) 

Alguém poderia saberia como resolver isso com o SED?


 




--
Tiago B. Peczenyj

http://about.me/peczenyj

reply via email to

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