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

一、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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值