Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么我的grep命令输出--&引用;在一些字里行间?_Grep_Fasta - Fatal编程技术网

为什么我的grep命令输出--&引用;在一些字里行间?

为什么我的grep命令输出--&引用;在一些字里行间?,grep,fasta,Grep,Fasta,我这里有一个类似于测试文件的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 AAA

我这里有一个类似于测试文件的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 hit上方的换行符上,如下所示:

>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”--“
语句从我的文件中删除这些行,但我真的很想了解这里发生了什么

您使用
-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,然后是
--
,然后是单行上下文,然后是连续匹配行组。

GREP\u COLORS
GREP手册页的部分说:

指定用于高亮显示输出的各个>部分的颜色和其他属性。它的值是以冒号分隔的列表 默认为 ms=01;31:mc=01;31:sl=:cx=:fn=35:ln=32:bn=32:se=36,带rv和 忽略了ne布尔函数功能(即,false)

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
不是实际文件中的相邻行。

谢谢@chthonicdaemon,我感到困惑的是,为什么只有一些匹配项用
--
分隔,而其他匹配项则不是
--
只有在存在非连续匹配项时才会放入。我将更新我的答案。冒着陈述显而易见的风险,您可以使用eg
grep-B1“CTT”test.fasta | grep-v^--
删除匹配间分隔符。