随手笔记 awk, linux数据处理工具

awk基本介绍:

命令格式:awk '条件类型1{操作1} 条件类型2{操作2}...' filename or stdin
awk功能: 将接受到的每一行根据FS变量分解成字段处理
处理流程:读第一行,将第一行数据根据字段写入$1,$2...,$0是本行数据
	  根据条件类型,进行操作
	  完成操作,下一行读入,重复操作。
	  note:若FS不是默认值,需要使用BEGIN{FS="分割符号"}
awk的特殊变量:NF行字段总数,NR目前awk处理第几行,FS目前使用的分割符,默认FS=" "

awk使用例子

使用BEGIN和自定义分割符
cat awk_test1.txt | awk 'BEGIN{FS=":"} {print $1"\t"$2"\t"$3}' > awkout1.txt
条件的使用:>, < , ==, >=, <=, !=
cat awk_test2.txt | awk 'NR>2{printf "%d, %d,%d\n", $2, $3, $4}'  > awkout2.txt
使用if条件
cat awk_test2.txt | \
>awk '{if(NR==1) printf"%10s, %10s, %10s, %10s, %10s\n", $1, $2, $3, $4,"Total"}
>NR>=2{total=$2+$3+$4
>printf"%10s, %10s, %10s, %10s, %10.2f\n", $1, $2, $3, $4,total}' > awkout3.txt

输入文件awk_test1.txt,

line 	:Name	:Value
1	:fst	:book
2	:scd	:cup
test1:test2:test3:text

awk_test2.txt

Name	1st	2nd	3th
VBird	23000	24000	25000
DMTsai	21000	20000	23000
Bird2	43000	42000	41000

输出文件awkout1.txt

line 		Name		Value
1		fst		book
2		scd		cup
test1	test2	test3

awkout2.txt

 

23000, 24000, 25000
21000, 20000, 23000
43000, 42000, 41000

awkout3.txt

      Name,        1st,        2nd,        3th,      Total
     VBird,      23000,      24000,      25000,   72000.00
    DMTsai,      21000,      20000,      23000,   64000.00
     Bird2,      43000,      42000,      41000,  126000.00

awk命令就到这了,以后可能用不到吧!

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值