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'
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!
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]"
Apenas grep por barra grep "/" list.txt