在下面的awk
中,我设置了一个loop
来读取特定类型的每个文件。下面的示例是两种文件类型,但是如果没有什么可计数的(file1是示例),那么我将没有输出。我尝试根据任一条件打印输出,如果没有,则在0
前面打印MAPD above QC Detected
。如果有什么要计数的,那么awk
会按预期执行,但我似乎无法正确调整它。这两个文件均为tab-delimited
,而...
代表被跳过的前三行。谢谢 :)。
awk
awk -F'\t' 'FNR == 3 {next}; $2 ~/MAPD>0.5/ {count++} END{print count " MAPD above QC Detected"}' file1 | awk '$1 == " MAPD above QC Detected" {print "0 MAPD above QC Detected"}'
文件1
....
....
....
chr1:1234 foo,bar
chr2:5678 foo,bar
文件2
....
....
....
chr1:1234 foo,MAPD>0.5
chr2:5678 foo,bar
所需的输出
文件1
0 MAPD above QC Detected
文件2
1 MAPD above QC Detected
答案 0 :(得分:3)
将print count
更改为print count+0
。
作为未初始化的变量,count
的初始值为零或零,并且当您不对其执行任何算术运算时(如输入内容不匹配时发生的情况),则awk不会知道要打印数字0,而是打印其字符串值NULL。