我有一个类似测试的fasta文件:
>HWI-D00196:168:C66U5ANXX:3:1106:16404:19663 1:N:0:GCCAAT
CCTAGCACCATGATTTAATGTTTCTTTTGTACGTTCTTTCTTTGGAAACTGCACTTGTTGCAACCTTGCAAGCCATATAAACACATTTCAGATATAAGGCT
>HWI-D00196:168:C66U5ANXX:3:1106:16404:19663 2:N:0:GCCAAT
AAAACATAAATTTGAGCTTGACAAAAATTAAAAATGAGCCCAGCCTTATATCTGAAATGTGTTTATATGGCTTGCAAGGTTGCAACAAGTGCAGTTTCCAA
>HWI-D00196:168:C66U5ANXX:4:1304:10466:100132 1:N:0:GCCAAT
ATATTTGAATTATCAGAAATAAACACAAAGAAAACCTAGAACAGATAATTTCTTCCACATTATTGATCAGATACAGATTTCAAGGGTACCGTTGTGAATTG
>HWI-D00196:168:C66U5ANXX:4:1304:10466:100132 2:N:0:GCCAAT
AAACGATTGATAGATCTATTTGCATTATAAAAACATTAAAAAAACAAAATACTGATTAAATGTCGTCTTTCTATTCCACAATTTTATAGATCTCACTGTAT
>HWI-D00196:168:C66U5ANXX:4:1307:12056:64030 1:N:0:GCCAAT
CTTACTTTGCCTCTCTCAGCCAATGTCTCCTGAGTCTAATTTTTTGGAGGCTAAGCTATGAGCTAATGATGGGTTCCATTTGGGGCCAATGCTTCAGCCTG
>HWI-D00196:168:C66U5ANXX:4:1307:12056:64030 2:N:0:GCCAAT
CTATTAGTTCTTATCTTTGCCTGCAAATATAAGACTAGCGCTTGAGTAGCTGACAGAGACAAAGTAAGCTGGAGTGTTTATCACCTGGTCACTCCAATTGT
当我输入一个简单的grep命令时,如:
grep -B1 "CTT" test.fasta
我得到一个非常奇怪的输出,其中" - "有时会将其放在grep命中上方的换行符上,如下所示:
>HWI-D00196:168:C66U5ANXX:4:1304:10466:100132 2:N:0:GCCAAT
AAACGATTGATAGATCTATTTGCATTATAAAAACATTAAAAAAACAAAATACTGATTAAATGTCGTCTTTCTATTCCACAATTTTATAGATCTCACTGTAT
--
>HWI-D00196:168:C66U5ANXX:4:1307:12056:64030 2:N:0:GCCAAT
CTATTAGTTCTTATCTTTGCCTGCAAATATAAGACTAGCGCTTGAGTAGCTGACAGAGACAAAGTAAGCTGGAGTGTTTATCACCTGGTCACTCCAATTGT
我无法弄清楚为什么有些fasta条目会有这个,而其他人则没有。当我删除-B1时,我不会遇到此问题。我可以使用grep -v "--"
声明从我的文件中删除这些行,但我真的很想了解这里发生了什么。
答案 0 :(得分:4)
您正在使用-B1
选项要求一行前导上下文。这意味着grep将显示匹配的行和它之前的行。每个匹配将在一行上由--
分隔,如下所示:
$ man grep | grep -B1 context
-A num, --after-context=num
Print num lines of trailing context after each match. See also
--
-B num, --before-context=num
Print num lines of leading context before each match. See also
--
-C[num, --context=num]
Print num lines of leading and trailing context surrounding each
--
--context[=num]
Print num lines of leading and trailing context. The default is
您在每次比赛之间看不到--
的原因是上下文仅显示在连续匹配序列之上。请参阅以下示例:
seq 13 | grep -B1 1
1
--
9
10
11
12
13
seq命令生成1到13之间的所有数字。只有第一行和10上的行包含1,所以你在自己的组中看到1,然后是--
,然后是一行上下文,然后是连续匹配行的组。
答案 1 :(得分:0)
GREP_COLORS
部分说:
指定用于突出显示各种>的颜色和其他属性。部分输出。它的值是以冒号分隔的列表 默认的功能 ms = 01; 31:mc = 01; 31:sl =:cx =:fn = 35:ln = 32:bn = 32:se = 36与rv和 省略了布尔功能(即假)。
和
se = 36
用于插入之间的分隔符的SGR子字符串 选定的行字段(:),上下文行字段,( - )和 当非零上下文时,在相邻行组之间 指定( - )。默认值是青色文本前景 终端的默认背景。
考虑文件sample.txt:
$cat sample.txt
ABBB
AAB
AAB
S
S
S
AABB
ABAA
BAA
CCC
$grep -B2 'AAB' sample.txt
ABBB
AAB
AAB
--
S
S
AABB
此处--
是grep
告诉您AAB
之前的--
和S
之后的--
不是相邻行的方式DoNotSerializeMe
实际文件。