awk统计文件某列中某关键词出现次数

有时我们需要统计文件的某列中某些词出现的次数,可以在Linux下使用sort | uniq -c,那用awk怎么操作呢?

有时我们需要统计文件的某列中某些词出现的次数,可以在Linux下使用sort | uniq -c,那用awk怎么操作呢?


示例文件test.txt

 a 00
b 01
c 00
d 02


1、统计文件test.txt中第2列不同值出现的次数

awk '{sum[$2]+=1}END{for(i in sum)print i"\t"sum[i]}' test.txt

运行结果:

00 2
01 1
02 1


2、只统计文件test.txt中第2列"00"或"01"出现的次数

如只统计文件test.txt中第2列"00"或"01"出现的次数,命令可写为

awk '{if($2=="00") ++sum1;if($7=="01") ++sum2}END{print "00""\t"sum1"\n""01""\t"sum2}' test.txt

执行结果如下:

 00 2
01 1
  • 发表于 2022-10-12 18:29
  • 阅读 ( 1631 )
  • 分类:linux

0 条评论

请先 登录 后评论
星莓
星莓

生物信息工程师

58 篇文章

作家榜 »

  1. omicsgene 702 文章
  2. 安生水 350 文章
  3. Daitoue 167 文章
  4. 生物女学霸 120 文章
  5. xun 82 文章
  6. 红橙子 78 文章
  7. rzx 76 文章
  8. CORNERSTONE 72 文章