awk命令使用总结

awk如何传递外部变量?

第一种:

[root@master yjt]# var=1

[root@master yjt]# echo |awk -v value=$var '{print value}'

1

第二种:

[root@master yjt]#var1=2

[root@master yjt]#var2=3

[root@master yjt]# echo |awk '{print value1,value2}' value1=$var1 value2=$var2
2 3

awk 判断列的大小例子
[/tmp/test]# cat tt10
N1        5        6        8        4        1        2        1        0        1        2
N2        5        6        5        6        9        1        2        4        4        2
N3        1        3        5        6        7        8        2        1        0        0
判断第二列大于等于5,第二列(不含第二列)之后有两列大于5的行
[/tmp/test]# awk '$2>=5{for(i=1;i<=NF;i++){if($i>5)j++}{if(j>=2) print $0}}' tt10 
N1        5        6        8        4        1        2        1        0        1        2
N2        5        6        5        6        9        1        2        4        4        2
判断第三列大于5或者第四列大于5的行
[/tmp/test]# awk '$3>5 || $4>5' tt10  
N1        5        6        8        4        1        2        1        0        1        2
N2        5        6        5        6        9        1        2        4        4        2
awk过滤-提取某个文件中某列或某几列数据大于指定数据的行数据
awk '$11>1.00 {print}' 1.txt
awk支持正则(如:提取第9,10,11列中大于1的行数据)
# 获取第9行、10、11列中大于1的行数据
awk '$9>1.00|| $10>1 || $11>1 {print}' 1.txt
计算2个数值的百分比

a=20
b=100
#计算百分比  
echo `awk 'BEGIN{printf "%.2f%%\n",('$a'/'$b')*100}'`

20.00%

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值