Unix 如果任何单词在列表中出现至少4次,我想打印它。我如何使用awk来实现这一点?
我有一个物种列表和它们的分数(1个物种一行,1个分数一行),其中一些物种出现不止一次(即它们有多个分数)。我想知道哪个物种至少有4分 在unixsbash中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次,所以这不起作用 输入示例: ================
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 '!/^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