我有这个例子
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]%/
答案 0 :(得分:1)
这是一个正则表达式,匹配单词开头\<
后跟8
,|
或9
([8|9]
应该是{{1} })后跟一个数字([89]
),后跟[0-9]
。
答案 1 :(得分:1)
BEGIN
块在读取任何输入文件之前执行一次,只打印文字字符串*** WARNING WARNING WARNING ***
。类似地,END
块也只在读取所有输入文件后执行一次,并且只打印升字符串*** Give money for new disks URGENTLY! ***
。对于前一个条件评估为true的每一行执行所有其他块。
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%
中regexp将匹配的任何位置,则将打印以下内容:字符串Partition
后跟当前行的第六个字段,后跟TAB,后跟:
,然后是当前行的第五个字段,最后是字符串full
。 awk
中的默认字段分隔符是空格。
答案 2 :(得分:-1)
如果匹配&lt; 80%至&lt; 99%,则显示消息Partition ### Full