Linux神器AWK学习笔记

 

    awk单独拿出来写了这篇笔记是因为它是在太强大了,简直就是一门脚本语言。

 

入门篇
# 数值计算
echo | awk '{print 19+7}' # 25

# 字符分割,-F指定分割符号,下例为"_"。如果不指定-F参数则使用空格分割
echo A_B_C | awk -F "_" '{print $1}'  # A

#字符串函数
echo  "apple banana dog"  | awk  '{print  substr($1, 1, 5)  }' # apple

#求和,对my.txt的第一列数值求和:
my.txt
-----
1 a
2 b
3 c
cat my.txt | gawk '{ sum += $1 }; END { print sum }' 

# 计算平均数
cat count.txt | awk '{sum+=$1} END {print "avg=", sum/NR}'

 

应用笔记 
# 字符串分割。根据"_"
ls | awk -F "_" '{print $1F}'

#删除某列,并输出
zcat xx.gz | awk '{$1 = null ;print}'

#输出最后一列
cat a.txt | awk '{print $NF}')

#输出倒数第二列
cat a.txt | awk '{print $(NF-1)}') 

 

 

求和、求平均数
# cat inputfile
1 50
2 30
3 20
4 50
# awk -F' ' '{sum+=$2;count+=1} END{print "SUM:"sum"\nAVG:"sum/count}' inputfile
SUM:150
AVG:37.5

 

 

变量名 含义

ARGC 命令行变元个数

ARGV 命令行变元数组

FILENAME当前输入文件名

FNR 当前文件中的记录号

FS 输入域分隔符,默认为一个空格

RS 输入记录分隔符

NF 当前记录里域个数

NR 到目前为止记录数

OFS 输出域分隔符

ORS 输出记录分隔符

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值