grep 从文件中筛选出 包含指定的字符或者正则表达式的行;默认只打印匹配到的行,
比如一个文件 test.txt, 其内容为:
abc
def
ghi
jkl
grep a test.txt, 输出内容为:
abc
指定了-A参数后可以输出匹配行以及后面的几行
grep -A 3 a test.txt, 输出内容为
abc
def
ghi
jkl
-f 参数可以指定一个文件, 其中文件的每一行指定了需要匹配的内容, 比如
grep.txt ,内容为:
a
d
grep -f grep.txt test.txt , 输出内容为
abc
def
今天遇到个问题,从fastq 文件中根据seq id 进行筛选, 就可以结合上面的用法来完成, 首先将seq id 放到一个seq.id.txt;
然后运行
grep -f seq.id.txt -A 3 test.fq
即可输出结果,而且如果seq id 有重复,也只会输出一次。需要注意的就是每一个seq id 必须能够唯一标识一行。