0

我有这个例子

BEGIN { print "*** WARNING WARNING WARNING ***" }

/\<[8|9][0-9]%/ { print "Partition " $6 "\t: " $5 " full!" }

END { print "*** Give money for new disks URGENTLY! ***" }

大部分我都懂,除了以下

/\<[8|9][0-9]%/
4

3 回答 3

1

这是一个正则表达式,将匹配 word-start\<后跟8|9([8|9]应该是[89]) 后跟数字 ( [0-9]) 后跟%

于 2013-04-18T21:00:38.430 回答
1

BEGIN块在读取任何输入文件之前执行一次,只打印文字字符串*** WARNING WARNING WARNING ***。同样,该END块也仅在读取所有输入文件后才执行一次,并且仅打印升字符串*** Give money for new disks URGENTLY! ***。所有其他块都针对前一个条件评估为真的每一行执行。

BEGIN { 
    print "*** WARNING WARNING WARNING ***"
}    
/\<[8|9][0-9]%/{                             
    print "Partition",$6,"\t:",$5,"full!"
}    
END { 
    print "*** Give money for new disks URGENTLY! ***" 
}

条件/\<[8|9][0-9]%/是正则表达式匹配整行,其中正则表达式的含义如下:

\<    # Word Start 
[8|9] # Either an 8 or | or 9 (think this should be [89])
[0-9] # A digit
%     # literal percent character

基本上,如果该行包含正则80% - 99%表达式将匹配的范围内的任何位置,并且将打印以下内容:字符串Partition后跟当前行的第六个字段,然后是 TAB,然后是:,然后是当前行的第五个字段,最后是字符串full。默认的字段分隔符awk是空格。

于 2013-04-18T21:05:17.313 回答
-1

如果它匹配 <80% 到 <99%,则显示消息 Partition### Full

于 2013-04-18T21:00:59.477 回答