我想找到其中同时包含单词/模式“gene”和“+”的行数。用 grep 可以做到这一点吗?
答案1
是的,您可以通过以下方式执行此操作grep
:
grep -c 'gene.*+' file
这将查找该单词gene
首先出现的行并作为单独的单词(\b
意思是“断词”),然后在同一行上,您也将其+
作为单独的单词出现。该-c
标志告诉grep
打印匹配行的数量。如果您还需要查找 出现在+
之前的情况gene
,您可以执行以下操作:
grep -Ec '(gene.*\+)|(\+.*gene)' file
然而,这也会匹配诸如Eugene+Mary came for dinner
which可能不是你想要的东西。鉴于您正在寻找的单词,我猜测您正在查看 gff/gtf 文件,因此您可能想做一些更复杂的事情,并且只gene
在每行的第三个字段和+
第七个字段中查找不存在的行不以 a #
(gff 标头)开头。如果这确实是您需要的,您可以这样做:
awk -F"\t" '!/^#/ && $3=="gene" && $7=="+"{c++}END{print c}'