我將多個域的SOA數據存儲在單個文件中,該文件按區域文件獲取$INCLUDE
d。我編寫了一個小的sed腳本,該腳本應該可以獲得序列號,然後重新保存SOA文件。只要SOA文件格式正確,整個記錄在一行上就可以正常工作,但只要記錄分成多行,它就會失敗。如何從sed文件中獲取SOA序列號?
例如,這可以作爲輸入數據:
@ IN SOA dnsserver. hostmaster.example.net. (2013112202 21600 900 691200 86400)
但這並不:
@ IN SOA dnsserver. hostmaster.example.net. (
2013112202 ; Serial number
21600 ; Refresh every day, 86400 is 1 day
900 ; Retry refresh every 15 min
691200 ; Expire every 8 days
86400) ; Minimum TTL 1 day
我喜歡的意見,我想傳播的事情了。但我需要我的腳本能夠找到序列號,以便我可以增加它並重寫該文件。上單線工作
戰略經濟對話是這樣的:
SOA=$(sed 's/.*@.*SOA[^0-9]*//;s/[^0-9].*//' $SOAfile)
但對於多行...我有點失落。我知道我可以連線N
,但我怎麼知道我是否需要需要?我是否需要根據原始文件的其他分析來編寫單獨的sed腳本?
請幫忙! :-)
你必須使用sed嗎?還是會用其他工具呢? – ghoti
我對其他工具很開放,但是我在FreeBSD上,所以我寧願不使用那些需要安裝基本操作系統所沒有的東西。這排除了Perl,Python,紅寶石等。 – Graham