awk总结

awk是一个非常棒的数据处理工具,相比于sed常常作用于一整行的处理,awk则比较倾向于将一行分成数个“字段”来处理。因此,awk相当适合于处理小型的数据处理。

下面是我写的测试脚本:

#!/bin/sh

#测试awk的通用模式
#awk '条件类型1{动作1} 条件类型2{动作2} ...' filename
echo -e "\n测试awk的通用模式!"  #必须加上转义-e,否则无法换行
cat data.txt | \
awk 'BEGIN {FS=":"} $3<10 {print $1 "\t" $3}' #注意:动作都是在{}里面,条件不必

#测试awk的计算功能
echo -e "\n测试awk计算功能!"
cat pay.txt | \
awk '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}' #注意:如果有需要多个命令辅助时,可利用";"间隔或者直接回车来隔开命令

#测试awk的变量和赋值
echo -e "\n测试awk的变量和赋值功能!"
awk '{count++;print $0;}  
END{print "user count is ",count}' pay.txt #$0表示一个记录,即一行

#测试数组及for循环
echo -e "\n测试数组及for循环!"
cat /etc/passwd | \
awk 'BEGIN{FS=":";count=0;} 
{name[count]=$1;count++;}
END{for(i=0;i<NR;i++) print i,name[i]}'

pay.txt如下:

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值