您的位置:首页 > 其它

awk积累(内置变量、指定分隔符、判断纯小数、数字相加)

2017-03-28 18:42 330 查看

一、awk内置变量

ARGC命令行参数个数
ARGV命令行参数排列
ENVIRON支持队列中系统环境变量的使用
FILENAMEawk浏览的文件名
FNR浏览文件的记录数
FS设置输入域分隔符,等价于命令行 -F选项
NF浏览记录的域的个数
NR已读的记录数
OFS输出域分隔符
ORS输出记录分隔符
RS控制记录分隔符
例如使用如下脚本判断一行数据中列的个数,及某列是否为小数:

cat t_doFind_fetch.txt | awk -F ' ' '{if(NF == 3 && ($3 ~ /^[0-9\.]+$/)){print $0}}' > t_doFind_fetch2.txt


二、判断某列是小数

echo "0.123" |awk '{if($0 ~ /^[0-9\.]+$/) print $0;}'


三、awk数字相加

1、整数相加

awk用数字和字母相加,不会报错,总和只是所有为数字的字段和,假设文本内容如下(以空格和tab分隔字段):

1       2       3
2       3 4
a b c


使用如下脚本:

cat test.txt | awk -F ' ' 'BEGIN{total=0;} {total+=$1} END{print total;}'


以上脚本的运行过程中并没有报错,并且运行结果为:3

2、科学计数法相加

awk脚本支持科学计数法相加,如下文本:

t_file_fetch =  1.00135803223e-05
t_file_fetch =  4.05311584473e-06
t_file_fetch =  3.09944152832e-06


使用脚本:

cat test.txt | awk -F ' ' 'BEGIN{total=0;} {total+=$3} END{print total;}'


运行结果:
1.71661e-05
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  awk