Como imprimir IP / MASK de uma lista?

1

Eu tenho uma lista com IPs e IP / MASK que se parece com:

1.1.1.1
2.2.2.2
192.168.0.1
223.0.0.0/15
213.32.7.0/24
...

Como posso imprimir apenas a linha IP / MASK? Eu usei o comando sed '/^\d{1,3}(\.\d{1,3}){3}\/\d{1,2}$/p' list.txt mas sempre imprimo toda a lista. Obrigado!

    
por Hao Ban 30.06.2017 / 19:24

3 respostas

0

Você precisa alterar o \d regex = > [0-9] as sed não entende. E você precisa invocar o sed com a opção -E para ativar as regexes estendidas { no lugar de \{

sed -nEe '/^[0-9]{1,3}(\.[0-9]{1,3}){3}\/[0-9]{1,2}$/p'
    
por 30.06.2017 / 19:53
1

Você pode usar o número, a barra e o número para corresponder às máscaras de rede, algo que pode fazer o trabalho:

grep -o "\d\/\d"

ou

grep -o "[0-9]\/[0-9]"
    
por 30.06.2017 / 19:40
1

Apenas grep por barra grep "/" list.txt

    
por 30.06.2017 / 19:42