2:pattern 在awk眼中,一个文本过来,被它看成了一个表格。 详细的说,一个文本过来,awk不管三七二十一先用RS字符串把它切成一行一行的,然后对每一行用FS切成一个一个的表项。 所以,awk里面文本有两个基本单位,一个是行,一个是表项。(回忆一下,sed文本只有一个基本单位,行)。 awk里面对每行编号为,1,2,3,4,5,... NR 对每行里面每个表项的编号是 $1 $2 $3 ... $NF,对整行特殊编号为$0 a. 由于NR NF 为数字,并且$n也可以为数字,那么可以进行数字比较,找出需要的pattern。 比如,第三项的值为日期号,判断日期大于20 可以写做 $3 > 20 数字比较有如下6种方法 < <= > >= == != b. 由于$n也可以是字符串,那么也可以采取字符串匹配的方法构造pattern 比如,含有字符串“www”的行 模式可以写做 $0 ~ /www/ 比如,第五项不包含字符串“com”,模式可以写做 $5 !~ /com/ c. 模式可以为模式范围 A pattern range is two patterns separated by a comma. The action is performed for each input line between the occurrence of the first and second pattern. /regular expression 1/, /regular expression 2/ { print $0 } d. 模式组合 Patterns can be combined to provide more powerful and complex matching. The following symbols are used to combine patterns. || logical or, either pattern can match && logical and, both patterns must match ! logical not, patterns not matching