簡體   English   中英

從區域文件中提取行

[英]Extracting lines from zone file

我有一個DNS區域文件,如下所示:

record A 1.1.1.1
       A 1.1.1.2
       A 1.1.1.3
other_record A 1.1.1.4
             A 1.1.1.5
another_rec  A 1.1.1.6

我需要提取屬於記錄的所有行(因此它下面的第一行和第二行)而沒有其他任何行(實際文件中有更多這樣的記錄,因此,請抓住第一行和下面的其他2行不是有效的解決方案)。

預期結果:

record A 1.1.1.1
       A 1.1.1.2
       A 1.1.1.3
awk '/^[^[:space:]]/{f = ($1=="record" ? 1 : 0)} f' file

這可能對您有用(GNU sed):

sed '/^record/{:a;n;/^\S/Q;ba};d' file

這在第一次出現record或以下record終止:

sed '/^\S/h;G;/^record/MP;d' file

打印所有出現的record

您還可以考慮使用dns區域文件解析器,這些解析器可使用python等各種語言提供。

一旦將區域文件內容作為對象進行處理,則可以很容易地按所需方式對其進行操作。

經過快速的網絡搜索-https://github.com/blockstack/zone-file-py我得到了這個。 (還有很多其他...您需要查看哪個最適合您)

您能否嘗試遵循並讓我知道是否有幫助。

awk '/^[a-z]+/ && !/^record/{flag=""} /^record/{flag=1} flag'  Input_file
awk '!/_/&&NR!=5' file

record A 1.1.1.1
       A 1.1.1.2
       A 1.1.1.3

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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