awk中变量说明:
变量名 | 含义 |
ARGC | 命令行变元个数 |
ARGV | 命令行变元数组 |
FILENAME | 当前输入文件名 |
FNR | 当前文件中的记录号 |
FS | 输入域分隔符,默认为一个空格 |
RS | 输入记录分隔符 |
NF | 当前记录里域个数 |
NR | 到目前为止记录数 |
OFS | 输出域分隔符 |
ORS | 输出记录分隔符 |
1.查看某个域的情况
统计某个列的不重复个数,-F指定列分隔符
awk -F '\t' '{print $1}' |sort|uniq|wc -l
awk '{print NR,NF,$1,$NF,}' file 显示文件file的当前记录号、域数和每一行的第一个和最后一个域
2.模糊匹配类似于like
awk '$1 ~ /101/ {print $1}' file 显示文件中第一个域匹配101的行(记录)
awk '/101/' file 显示文件file中包含101的匹配行。
awk '/101/,/105/' file
awk '$1 == 5' file
awk '$1 == "CT"' file 注意必须带双引号
awk '$1 * $2 >100 ' file
awk '$2 >5 && $2<=15' file
3.对某一列求和
对文件第2列数据求和,begin用于初始化变量,中间逻辑处理,end做输出处理
awk 'BEGIN {total=0} {total+=$2} END {print total}' file