
Eu tenho um arquivo de log que está produzindo uma saída como:
[+] [1.1.1.1] LOG HERE
Gostaria de saber como posso extrair o IP do log para enviar para um arquivo "limpo", que liste apenas o IP.
Responder1
Com awk
, testado em GNU Awk 4.1.3
, não tenho certeza se não funcionará com outras versões
$ cat ip.txt
[+] [1.1.1.1] LOG HERE
$ awk -F'[][]' '{print $4}' ip.txt
1.1.1.1
-F'[][]'
definir separador de campo de entrada como[
ou]
{print $4}
imprima o 4º campo
Com sed
, assumindo que o arquivo de entrada tem um padrão consistente, como mostrado no exemplo
$ sed 's/.*\[//; s/].*//' ip.txt
1.1.1.1
s/.*\[//
excluir do início da linha até o último[
da linhas/].*//
da linha tão modificada, exclua tudo do primeiro]
ao fim da linha