linux grep和Ruby之间的差异';s扫描结果

linux grep和Ruby之间的差异';s扫描结果,ruby,regex,string,grep,Ruby,Regex,String,Grep,我有一份DNA序列列表(每行一个): ACTGCTCGGGGG CGCTCGCTTCTC 等 大多数序列包含两个特定的基序,一个靠近开头,一个靠近结尾。我正在提取中间的序列: 使用grep:grep“motif 1.*motif 2”inputfile>outputfile 在带扫描的ruby中,其中序列是一组DNA序列: sequences.each do |seq| tmp=seq.scan(/motif1.*motif2/)[0] outputfile << tmp

我有一份DNA序列列表(每行一个):

ACTGCTCGGGGG

CGCTCGCTTCTC

大多数序列包含两个特定的基序,一个靠近开头,一个靠近结尾。我正在提取中间的序列:

  • 使用grep:
    grep“motif 1.*motif 2”inputfile>outputfile
  • 在带扫描的ruby中,其中
    序列
    是一组DNA序列:

     sequences.each do |seq|
      tmp=seq.scan(/motif1.*motif2/)[0]
      outputfile << tmp if tmp
     end
    
    sequences.each do|seq|
    tmp=顺序扫描(/Motion1.*Motion2/)[0]
    
    默认情况下,outputfileRuby的
    scan
    返回一个包含匹配正则表达式部分的数组。Grep不会这样做,如果
    color
    设置为
    auto
    ,它将返回整行并突出显示匹配项。要仅从检索匹配的零件,请使用
    -o
    选项

    grep -o "motif1.*motif2" inputfile > outputfile
    

    上一个命令应该保存与的扫描相同的输出。

    每个命令的输出是什么?我不熟悉ruby,但我猜ruby可能只返回匹配的部分,而grep默认不返回?--无论如何,请尝试
    grep-o“pattern”infle>outfile