Com o GNU sed:
sed -i '/10\.10\.20\.[[:digit:]]\{,3\}/d' file
Com o BSD sed, você precisa de sed -i ''
.
Estou precisando de uma solução, de preferência sed, que possa corresponder a um octeto IP que contenha qualquer combinação de números e remova a linha. Por exemplo:
Meu arquivo:
192.168.100.12
192.168.200.12
10.10.20.10
10.10.30.20
Eu preciso remover a linha que contém qualquer IP encontrado na sub-rede 10.10.20.x e removê-lo. Então, se o arquivo contém 10.10.20.10, 20.11, 20.12, etc ... Todos eles são removidos. Eu também preciso de uma substituição inline.
O que tentei:
sed -i '/10\.10\.20\.\([0-9]\{1,3\}\)/d' file
e isso:
sed -i '/10.\.10\.20\.*\([0-9]\{1,3\}\)*/d' file
E nenhum deles funciona. O comando é concluído sem erros, mas as linhas ainda estão no arquivo. Eu também estou aberto a outras soluções, como o awk.
Tags text-processing awk sed