I want to delete some iptables rules shown as following:
$ sudo iptables-save | grep -- '--dport 53'
-A PREROUTING -s
172.17.0.0/16 -i docker0 -p udp -m udp --dport 53 -j DNAT --to-destination 127.0.0.53
-A PREROUTING -s
172.17.0.0/16 -i docker0 -p tcp -m tcp --dport 53 -j DNAT --to-destination 127.0.0.53
So I try to construct the command using sed and xargs as follows:
$ sudo iptables-save | grep -- '--dport 53' | sed -z 's/^-A/-D/' | xargs -0 -I{} echo sudo iptables {}
sudo iptables -D PREROUTING -s
172.17.0.0/16 -i docker0 -p udp -m udp --dport 53 -j DNAT --to-destination 127.0.0.53
-A PREROUTING -s
172.17.0.0/16 -i docker0 -p tcp -m tcp --dport 53 -j DNAT --to-destination 127.0.0.53
As you can see, this can only construct the first command correctly. Any hints for this problem?
Regards,
HY