2015-08-28 13 views
0

分隔的多行我想過濾以RUN開頭並由\分隔的行。如何連接由

RUN install-repository \ 
    "--url http://toolshed.g2.bx.psu.edu/ -o iuc --name gatk2 --panel-section-name GATK2" \ 
    "--url http://toolshed.g2.bx.psu.edu/ -o devteam --name suite_samtools_0_1_19 --panel-section-name SAMTools" \ 
    "--url http://toolshed.g2.bx.psu.edu/ -o devteam --name freebayes --panel-section-name Freebayes" 

RUN ... 

此刻我

RUN install-repository \ 
RUN install-repository \ 
... 

與下面的代碼:

import urllib2 

def run(): 

    file_url = "https://raw.githubusercontent.com/bgruening/docker-recipes/master/galaxy-exom-seq/Dockerfile" 

    data = urllib2.urlopen(file_url) 

    for line in data: 
     if line.startswith("RUN"): 
      print line.rstrip() 

if __name__ == '__main__': 
    run() 

什麼是做到這一點的最好方法是什麼?

回答

1

沒有看到一個答案得到接受這一個,所以我給它一個嘗試。

from urllib import urlopen 
import re 

def run(): 
    re1 = '^RUN' 
    re2 = '^ "--url' 
    file_url = "https://raw.githubusercontent.com/bgruening/docker-recipes/master/galaxy-exom-seq/Dockerfile" 
    data = urlopen(file_url) 
    for line in data: 
     if re.search(re1, line) or re.search(re2, line): 
      print(line.rstrip('\\\n')) 

if __name__ == '__main__': 
    run() 

我認爲會得到它。

+0

謝謝。我改變了print(line.rstrip('\ n'))和re2 =「--url」。 – user977828

1

試試這個:

>>> commands = [] 
>>> a = StringIO.StringIO("RUN aaa\nRUNafas\nRUNaaa\n") 
>>> for line in a: 
...  if line.startswith("RUN"): 
...   commands.append(line.rstrip()) 
... 
>>> print " \\\n".join(commands) 
RUN aaa \ 
RUNafas \ 
RUNaaa 
1

您可以構建的拼接線與列表:

lines = [] 
for line in open('runtest.txt'): 
    if s and line.startswith('RUN'): 
     lines.append(s) 
     s = '' 
    s += line.rstrip('\\\n') 

例如與runtest.txt

RUN install-repository \ 
    "--url http://toolshed.g2.bx.psu.edu/ -o iuc --name gatk2 --panel-section-name GATK2" \ 
    "--url http://toolshed.g2.bx.psu.edu/ -o devteam --name suite_samtools_0_1_19 --panel-section-name SAMTools" \ 
    "--url http://toolshed.g2.bx.psu.edu/ -o devteam --name freebayes --panel-section-name Freebayes" 

RUN install-repository \ 
    "--url http://toolshed.g2.bx.psu.edu/ -o iuc --name gatk2 --panel-section-name GATK2" \ 
    "--url http://toolshed.g2.bx.psu.edu/ -o devteam --name suite_samtools_0_1_19 --panel-section-name SAMTools" \ 
    "--url http://toolshed.g2.bx.psu.edu/ -o devteam --name freebayes --panel-section-name Freebayes" 

RUN install-repository \ 
    "--url http://toolshed.g2.bx.psu.edu/ -o iuc --name gatk2 --panel-section-name GATK2" \ 
    "--url http://toolshed.g2.bx.psu.edu/ -o devteam --name suite_samtools_0_1_19 --panel-section-name SAMTools" \ 
    "--url http://toolshed.g2.bx.psu.edu/ -o devteam --name freebayes --panel-section-name Freebayes" 

你得到:

RUN install-repository  "--url http://toolshed.g2.bx.psu.edu/ -o iuc --name gatk2 --panel-section-name GATK2"  "--url http://toolshed.g2.bx.psu.edu/ -o devteam --name suite_samtools_0_1_19 --panel-section-name SAMTools"  "--url http://toolshed.g2.bx.psu.edu/ -o devteam --name freebayes --panel-section-name Freebayes" 
RUN install-repository  "--url http://toolshed.g2.bx.psu.edu/ -o iuc --name gatk2 --panel-section-name GATK2"  "--url http://toolshed.g2.bx.psu.edu/ -o devteam --name suite_samtools_0_1_19 --panel-section-name SAMTools"  "--url http://toolshed.g2.bx.psu.edu/ -o devteam --name freebayes --panel-section-name Freebayes" 
RUN install-repository  "--url http://toolshed.g2.bx.psu.edu/ -o iuc --name gatk2 --panel-section-name GATK2"  "--url http://toolshed.g2.bx.psu.edu/ -o devteam --name suite_samtools_0_1_19 --panel-section-name SAMTools"  "--url http://toolshed.g2.bx.psu.edu/ -o devteam --name freebayes --panel-section-name Freebayes"