藍森林首頁 | 返回主頁 | 本站地圖 | 站內搜索 | 聯繫信箱 |
 您目前的位置:首頁 > 自由軟件 > 技術交流 > 應用編程


    

藍森林 http://www.lslnet.com 2006年6月26日 11:18


請教大家一個AWK的腳本!

最近移植djbdns到ARM上,裡面有一個AWK的腳本,我看不太懂,想請大家幫忙分析一下,看看主要是實現什麼功能的,多謝大家了!

awk -F: '
BEGIN { OFS=":" }
{
if ($5 == "tx") next
if ($5 == "A") {
print "glue",$6,$3,$4,"answer",$6" A "$7
next
}
if ($5 == "NS") {
print "glue",$6,$3,$4,"answer",$6" NS "$7
next
}
print
}
' | sort -t: +0 -2 +4 +3 -4 +2 -3 | uniq | awk -F: '
{
type = $1
q = $2
c = $3
ip = sprintf("%-16s",$4)

if (q != lastq) { print ""; lastq = q }

if ($5 == "ALERT") {
result = "A\bAL\bLE\bER\bRT\bT:\b: " $6
}
else if ($5 == "answer") {
if (index($6,q" ") == 1)
$6 = substr($6,length(q) + 2)
result = $6
}
else if ($5 == "see") {
result = "see " $6
}
else if ($5 == "CNAME") {
result = "CNAME "$6
}
else
result = $5

if (c != ".") {
q = substr(q,1,length(q) - length(c))
for (i = 1;i <= length(c);++i) {
ci = substr(c,i,1)
q = q "_\b" ci
}
}

print type,q,ip,result
}
'

請教大家一個AWK的腳本!

NS A tx "A\bAL\bLE\bER\bRT\bT:\b: "看這個應該是過濾一些DNS記錄重新格式化排序送給less或什麼程序閱讀的



Copyright © 1999-2000 LSLNET.COM. All rights reserved. 藍森林網站 版權所有。 E-mail : webmaster@lslnet.com