Unix 如果任何单词在列表中出现至少4次,我想打印它。我如何使用awk来实现这一点?

Unix 如果任何单词在列表中出现至少4次,我想打印它。我如何使用awk来实现这一点?,unix,awk,count,grep,uniq,Unix,Awk,Count,Grep,Uniq,我有一个物种列表和它们的分数(1个物种一行,1个分数一行),其中一些物种出现不止一次(即它们有多个分数)。我想知道哪个物种至少有4分 在unixsbash中 grep SCORE_INFO reformatted_output | grep -v '\-999' | uniq -c | awk '$4>=4{print}' (grep ed SCORE_INFO,因为还有其他行包含其他信息) 一些打印出来的结果只打印2到3次,所以这不起作用 输入示例: ================

我有一个物种列表和它们的分数(1个物种一行,1个分数一行),其中一些物种出现不止一次(即它们有多个分数)。我想知道哪个物种至少有4分

在unixsbash中

grep SCORE_INFO reformatted_output | grep -v '\-999' | uniq -c | awk '$4>=4{print}' 
(grep ed SCORE_INFO,因为还有其他行包含其他信息)

一些打印出来的结果只打印2到3次,所以这不起作用

输入示例:

================================================
INPUT_LINE_NUMBER 0
FULL_LINE 0  Candidatus Blochmannia floridanus
GENUS 0 Blochmannia
BINOMIAL_SPECIES 0 Blochmannia floridanus
EXTRA_INFO 0 
SCORE_INFO 0 Blochmannia floridanus -999
================================================
================================================
INPUT_LINE_NUMBER 1
FULL_LINE 1  Buchnera aphidicola str. Bp (Baizongia pistaciae)
GENUS 1 Buchnera
BINOMIAL_SPECIES 1 Buchnera aphidicola
EXTRA_INFO 1 str.Bp(Baizongiapistaciae)
SCORE_INFO 1 Buchnera aphidicola -999
================================================
================================================
INPUT_LINE_NUMBER 2
FULL_LINE 2  Buchnera aphidicola str. 5A (Acyrthosiphon pisum) SCORE 15.22082
GENUS 2 Buchnera
BINOMIAL_SPECIES 2 Buchnera aphidicola
EXTRA_INFO 2 str.5A(Acyrthosiphonpisum)
SCORE_INFO 2 Buchnera aphidicola 15.220829
输出示例(我目前得到):


你的问题并不十分清楚,但我将尝试回答你的基本问题:

我想知道哪个物种至少有4分

从您的示例代码中,我们知道:

  • 我们对匹配
    SCORE\u INFO
  • 我们不在乎分数是否为
    -999
  • 物种是位于第二个字段和最后一个字段之间的字符串
  • 因此,以下awk行将为您提供出现4次或更多次的名称列表:

    awk '!/^SCORE_INFO/ { next }
          ($NF == -999) { next }
          { key=""; for(i=3;i<NF;++i) key=(key=="" ? $i : key" "$i) }
          (++a[key] == 4) { print key }' file
    

    如果这两个名称出现4次或更多次

    ,我们需要看到一些示例输入和预期输出
    awk '!/^SCORE_INFO/ { next }
          ($NF == -999) { next }
          { key=""; for(i=3;i<NF;++i) key=(key=="" ? $i : key" "$i) }
          (++a[key] == 4) { print key }' file
    
    Yersinia pestis
    Buchnera aphidicola