2012-02-08 49 views
0

我有一个文本象下面这样:分割线

HWI-ST150_0129:2:8:19270:131483#0 chr1 735440 819383 HWI-ST150_0129:5:44:4612:112201#0 chr1 735446 819377 HWI-ST150_0129:5:61:12668:134666#0 chr1 735444 819380 

HWI-ST150_0129:2:27:6777:92418#0 chr10 107950655 107951635 HWI-ST150_0129:3:61:5129:81938#0 chr10 107950674 107951702 

...... 

因此,我们可以看到每行包含如“HWI-ST150_0129图案:2:8:19270:131483#0 CHR1 735440 819383 “ 我希望把它变成:

HWI-ST150_0129:2:8:19270:131483#0 chr1 735440 819383 
HWI-ST150_0129:5:44:4612:112201#0 chr1 735446 819377 
HWI-ST150_0129:5:61:12668:134666#0 chr1 735444 819380 
HWI-ST150_0129:2:27:6777:92418#0 chr10 107950655 107951635 
HWI-ST150_0129:3:61:5129:81938#0 chr10 107950674 107951702 

我该怎么办呢? bash和python都可以。 我个人比较喜欢bash更多 thx

回答

0

您正在使用哪种语言或代码?

查找字符串中每个HWI的索引。 在HWI“\ r”或者“\ r \ n”之前插入基本上插入retun字符和换行符。

可能也想看看REGEX。

+0

波什bash或蟒蛇的作品给我 – user815408 2012-02-08 16:45:33

0

没有指定的工具或语言...

工具(Windows)中:用记事本++,并使用正则表达式如下更换:

搜索:

(HWI-\w+:\d+:\d+:\d+:\d+#\d+ \w+ \d+ \d+) 

替换为:

\1\n 

语言(任何操作系统):使用Perl和给定的正则表达式。替换正则表达式应该是:

$1\n 
0

这会给你确切的结果

<?php 
    $text ="HWI-ST150_0129:2:8:19270:131483#0 chr1 735440 819383 HWI-ST150_0129:5:44:4612:112201#0 chr1 735446 819377 HWI-ST150_0129:5:61:12668:134666#0 chr1 735444 819380 HWI-ST150_0129:2:27:6777:92418#0 chr10 107950655 107951635 HWI-ST150_0129:3:61:5129:81938#0 chr10 107950674 107951702"; 
    $arrHw = explode('HWI',$text); 

    for($i=1;$i<count($arrHw);$i++): 
     echo "HWI".$arrHw[$i]."<br/>"; 
    endfor; 
    ?>