打印列
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