簡體   English   中英

如何用sed替換區域文件中的IP

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM