awk 命令的原理

一、awk的格式

  awk [options]  'pattern  {action}'   file

awk指令是由模式、动作,或者模式和动作的组合组成,指令要加单引号。options即是参数,pattern既是模式,action既是动作。模式是查找的范围,动作是截取数据,动作要加大括号。如果没有模式就默认是范围是全部内容,如果没有动作就输出全部内容。

二、awk的执行

-F 指定分隔符,就是按照什么符号进行文件的切割。如果我们不指定-F参数,awk默认按照空格对文件进行切割,但是会把左右去掉空格取内容。如:awk -F "[ :]"   这就是制定以空格和冒号为分隔符。

print 是输出的意思,$代表取列,$1代表取第一列,$0默认输出全部内容,$NF代表取最后一列。

echo -e 可以处理换行符\n

sort 按26个字母排序,xi加-n按从小到大的数字排列,加-r逆转顺序进行排序,加-k指定那列,如sort -k2

unip 相近的进行去重,加-c去重的同时进行计数

tr 替换命令,如tr ":" "?"

awk的模式:

1、正则表达式

awk默认支持除了{}以外的所有正则表达式,加参数--posix可以识别{},前面加~表示匹配正则表达式,加!~表示与~相反的意思。

2、比较表达式

比较常用的就是大于、小于和等于,NR是awk读过的行的记录号,也相当于行号,如大于等于23即NR》=23

3、范围模式

4、特殊模式(BEGIN和END)

BEGIN模块就在awk读取文件之前执行,一般用来定义内置变量。在awk中变量一般从零开始。

awk -F: 'BEGIN{RS="\n";ORS="\"}{print $3}' test

RS是读入划行符,ORS是输出划行符 

END模块就在awk读取所有文件的时候,再执行END模块,一般用来输出一个结果。

 

posted @ 2018-10-28 22:42  aspen-  阅读(201)  评论(0)    收藏  举报