我有一个tsv文件,在第22列中,我想删除所有没有100.0%作为数值常量的行。其他值都是0.0%
我试过:
cat Product_Adaption.tsv | awk '$22 != /100.0%/' | cut -f1,22 | awk -F '\t' '{print $0, "Missing "}' | head
它仍然打印所有100.0%的值,而不是0.0%的值
如何仅获取第22列中具有0.0%的行的grep
Column 1 Column 22
26483335 0.00%
26483335 0.00%
6522321 100.00%
10058064 100.00%
26483335 0.00%
1061749 100.00%
26483335 100.00%
1098801 0.00%
83895846 0.00%
10058124 100.00%
26483335 0.00%
90872300 100.00%
9646863 100.00%
26483335 100.00%
26483335 0.00%
26483335 100.00%
当我使用
cat Product_Adaption.tsv |awk '$22 != /^100\.0%$/'| cut -f1,22 | awk -F '\t' '{print $0, "Missing"}' | head
我把这个作为输出
26483335 0.0% Missing
26483335 0.0% Missing
6522321 100.0% Missing
10058064 100.0% Missing
26483335 0.0% Missing
1061749 100.0% Missing
26483335 100.0% Missing
1098801 0.0% Missing
83895846 0.0% Missing
regex似乎不起作用?
最佳答案
目前还不清楚为什么你有这么多的命令和管道,并与ReXEP分隔符混合字符串操作。
awk -F'\t' '$22 == "0.00%"{print $1, $22, "Missing"}' Product_Adaption.tsv
有时您在问题中显示
0.00%
或其他您在问题中显示0.0%
的内容,这样就可以确定输入文件真正包含的内容,但只需使用上面脚本中正确的内容。