#Using `sed` to modify a DNS zone Take the following DNS zone as an example, say we needed to update the IP address from 110.232.142.185 to 45.65.88.152, you could modify the file using a text editor (see [editors](/commands#editors)) ``` $TTL 86400 @ IN SOA ns1.benjamyn.love. servers.benjamyn.love. ( 2018043009 ;Serial 3600 ;Refresh 1800 ;Retry 604800 ;Expire 43200 ;Minimum TTL ) ;Name Server Information @ IN NS ns1.benjamyn.love. @ IN NS ns2.benjamyn.love. ;IP address of Name Server primary IN A 110.232.142.184 ;A - Record HostName To Ip Address memes.sh. IN A 110.232.142.185 www IN A 110.232.142.185 ;CNAME record ftp IN CNAME memes.sh. ``` In this case we can just use `sed -i s/110.232.142.185/45.65.88.152/g filename` The file gets changed to ``` $TTL 86400 @ IN SOA ns1.benjamyn.love. servers.benjamyn.love. ( 2018043009 ;Serial 3600 ;Refresh 1800 ;Retry 604800 ;Expire 43200 ;Minimum TTL ) ;Name Server Information @ IN NS ns1.benjamyn.love. @ IN NS ns2.benjamyn.love. ;IP address of Name Server primary IN A 110.232.142.184 ;A - Record HostName To Ip Address memes.sh. IN A 45.65.88.152 <-- www IN A 45.65.88.152 <-- ;CNAME record ftp IN CNAME memes.sh. ``` You can also use sed to update things like the serial number using some regex (which will need to be incremented for the DNS zone to be properly synced out) The command will look like `sed -i s/.*Serial/" 2019010308 ;Serial"/g filename` (The quotes are to escape the ; character) and when run against the DNS zone it will update will look like ``` $TTL 86400 @ IN SOA ns1.benjamyn.love. servers.benjamyn.love. ( 2019010308 ;Serial <-- 3600 ;Refresh 1800 ;Retry 604800 ;Expire 43200 ;Minimum TTL ) ;Name Server Information @ IN NS ns1.benjamyn.love. @ IN NS ns2.benjamyn.love. ;IP address of Name Server primary IN A 110.232.142.184 ;A - Record HostName To Ip Address memes.sh. IN A 45.65.88.152 www IN A 45.65.88.152 ;CNAME record ftp IN CNAME memes.sh. ```