[英]How to replace IP in zone file with sed
我正在嘗試使用sed替換區域文件中的IP以用於特定記錄。 使用以下示例,我要替換server1的IP。 我在更換IP而不是更換整個生產線時遇到問題。 任何人都可以幫忙,因為我現在對sed感到一頭霧水。
$ORIGIN example.com
$TTL 86400
@ IN SOA dns1.example.com. hostmaster.example.com. (
2001062501 ; serial
21600 ; refresh after 6 hours
3600 ; retry after 1 hour
604800 ; expire after 1 week
86400 ) ; minimum TTL of 1 day
IN NS dns1.example.com.
IN NS dns2.example.com.
IN MX 10 mail.example.com.
IN MX 20 mail2.example.com.
IN A 10.0.1.5
server1 IN A 10.0.1.5
server2 IN A 10.0.1.7
dns1 IN A 10.0.1.2
dns2 IN A 10.0.1.3
您可以使用
IP="1.2.3.4"
sed "/^server1/s/[^[:space:]]\+$/$IP/" file
如果您滿意更改,可以傳遞-i
到位更改文件:
IP="1.2.3.4"
sed -i "/^server1/s/[^[:space:]]\+$/$IP/" file
順便說一句,如果行尾可能出現空格,我建議這樣做:
sed "/^server1/s/[^[:space:]]\+[[:space:]]\{0,\}$/$IP/" file
sed -r "s/^(server1.*)([0-9]+[.][0-9]+[.][0-9]+.[0-9]+[ ]*)$/\1$NEWIP/" my_file
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.