[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: |
phfbettega |
Subject: |
Re: [shell-script] SED - Como parar a consulta na N ocorrência |
Date: |
Wed, 23 Aug 2017 10:40:23 -0300 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.3.0 |
Pessoal, me desculpem pelo sed que eu postei, é terrivelmente ineficiente.
Além de acumular todas as linhas com o ip só pra pegar as duas primeiras,
ainda por cima espera até o final do arquivo pra apresentar o resultado.
Pensei num sed que funcione como a opção -m do grep
sed -nr '/\<192.168.1.4\>/ {H;g;s/^((\n[^\n]+){2})/\1/;ta;d;:a;s/^\n//;p;q}'
ips.txt
vai testando a cada acumulação no espaço reserva, se houver tantas repetições
indicadas nas chaves, imprime e sai, senão deleta o espaço padrão e inicia um
novo ciclo.
Abraços Paulo
On 22-08-2017 11:05, address@hidden [shell-script] wrote:
Olá andrelucio, esse sed adiciona todas as linhas com o endereço no espaço
reserva
e depois imprime até a ocorrência N que é o número do \n que fica fora do grupo.
sed -nr '/\<192.168.1.4\>/ H; $ {g;s/\n//;s/([^\n]+\n[^\n]+)\n.*/\1/p}' ips.txt
Abraços Paulo
On 22-08-2017 10:04, address@hidden [shell-script] wrote:
> 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?
>
>
>
> ----------------------------------------------------------
> Enviado por: address@hidden
> ----------------------------------------------------------
--------------------------------------------------------------------------------------------------------------
Enviado por: address@hidden
--------------------------------------------------------------------------------------------------------------
- Re: [shell-script] SED - Como parar a consulta na N ocorrência, (continued)