【linux基础awk】如何基于强大的awk打印列、计算

打印列

awk '{print $1}' test.txt

#-F参数去指定分隔的字符
awk -F ","  '{print $1,$2}' file

匹配打印列

awk '/a/ {print $4 "\t" $3}' test.txt

 筛选数值

仅打印那些含有多于18个字符的行。

awk 'length($0) > 18' test.txt

统计数目

#统计行数
less number.txt |awk 'END{print (NR)}'

打印符合条件的条数:统计第一列大于0的行有多少个。先读取数据,然后判断大于0,则变量num加1,最后打印符合条件的总数。

less number.txt |awk '$1>0{num=num+1}END{print "T01 expression >0:",num}' 

T01 expression >0: 9

计算

示例:基于plink计算  杂合度

awk 'NR!=1{print 1-$3/$5}'  plink.het > sample.het

#筛选出杂合度大于15%的样本
#NR>1表示跳过第一行表头从第二行开始计算数值

awk '$1>= 0.15'  sample.hetZ



awk 'NR!=1{print $2,"\t",1-$3/$5}'  plink.het
awk '$2>= 0.15'  sample.hetZ

求和

cat number.txt | awk '{sum+=$1} END {print sum}'

均值

cat number.txt | awk '{sum+=$1} END {print "AVERAGE:", sum/NR}'

最大值

cat number.txt |awk 'BEGIN {max = 0} {if ($1>max) max=$1 fi} END {print "Max=", max}'

参考

AWK基本示例 -Awk教程

AWK 专家必备的12个技巧

https://www.cnblogs.com/gentlemanhai/p/12745728.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值