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

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

Re: [shell-script] Re: Extração de dados em HTML


From: phfbettega
Subject: Re: [shell-script] Re: Extração de dados em HTML
Date: Thu, 11 May 2017 02:06:10 -0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.1.0

É um esqueleto de loop. Aprendi o loop no livro do Aurelio, como unir todas as
linhas de um arquivo numa linha só.
http://aurelio.net/sed/livro/

Opção -n inibe a impressão, o sed só vai imprimir com o comando p.
Opção -r para expressões regulares avançadas.

sed -nr '
# Aplique os comandos entre chaves apenas nas linhas que contenham 
/user\.default/
/user\.default/ {

# Define a marcação 'a'.
:a

# Aqui outro endereço.
# Quando achar uma linha que contenha /10\.255/, pule para a marcação 'fim'.
# O pulo é indicado pelo comando 'b'.
/10\.255/ b fim

# O sed só vai executar o comando 'N' se a linha não casar com o endereço 
/10\.255/.
# O comando 'N' coloca um '\n' no fim do conteúdo do espaço padrão e lê a 
próxima linha
# do arquivo no espaço padrão.
N
# Aqui é o ponto em que o sed vai carregando linha por linha no espaço padrão 
(a cada
# passagem do loop) com um '\n' entre as linhas.
# Enquanto uma linha não casar com o endereço /10\.255/ (que pula para o 'fim'),
# o espaço padrão vai enchendo.
# O comando 'b' pula para a marcação 'a' lá no começo das chaves.
b a

# Quando o sed chega nessa marcação é porque sofreu o desvio do endereço 
/10\.255/.
:fim

# Aqui o espaço padrão tem somente uma linha formada com as linhas lidas pelo 
'N'
# separadas por '\n', daí é só pegar o que interessa com os grupos e substituir
# todo o espaço padão pelos retrovisores. O 'p' é um modificador do comando 's' 
que
# imprime o espaço padrão se a substituição ocorreu.
s/(user\.default).*(10\.255[.0-9]+).*/\1 \2/p
}'

Abraços Paulo


On 10-05-2017 14:09, address@hidden [shell-script] wrote:
Opa, pessoal, primeiramente muito obrigado pela ajuda.


A solução dada pelo phfbettega funcionou perfeitamente.

Trouxe somente os dados que preciso. Só preciso entender melhor o sed rs.

Resultado esperado:
user.default 10.255.1.158
user.default 10.255.1.54
user.default 10.255.1.161

Trecho do código no pastebin:

https://pastebin.com/kWaDgWaW



--------------------------------------------------------------------------------------------------------------
Enviado por: address@hidden
--------------------------------------------------------------------------------------------------------------


reply via email to

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