2013-06-27 42 views
0

請給我一些關於在字母之前去掉換行符並忽略以>開頭的行的建議。 例如:textpad正則表達式

>gi|16802049|ref|NP_463534.1| chromosomal replication initiation protein [Listeria monocytogenes EGD-e] 
MQSIEDIWQETLQIVKKNMSKPSYDTWMKSTTAHSLEGNTFIISAPNNFVRDWLEKSYTQFIANILQEIT 
GRLFDVRFIDGEQEENFEYTVIKPNPALDEDGIEIGKHMLNPRYVFDTFVIGSGNRFAHAASLAVAEAPA 
KAYNPLFIYGGVGLGKTHLMHAVGHYVQQHKDNAKVMYLSSEKFTNEFISSIRDNKTEEFRTKYRNVDVL 
LIDDIQFLAGKEGTQEEFFHTFNTLYDEQKQIIISSDRPPKEIPTLEDRLRSRFEWGLITDITPPDLETR 
IAILRKKAKADGLDIPNEVMLYIANQIDSNIRELEGALIRVVAYSSLVNKDITAGLAAEALKDIIPSSKS 
QVITISGIQEAVGEYFHVRLEDFKAKKRTKSIAFPRQIAMYLSRELTDASLPKIGDEFGGRDHTTVIHAH 
EKISQLLKTDQVLKNDLAEIEKNLRKAQNMF 

>gi|16802050|ref|NP_463535.1| DNA polymerase III subunit beta [Listeria monocytogenes EGD-e] 
MKFVIERDRLVQAVNEVTRAISARTTIPILTGIKIVVNDEGVTLTGSDSDISIEAFIPLIENDEVIVEVE 
SFGGIVLQSKYFGDIVRRLPEENVEIEVTSNYQTNISSGQASFTLNGLDPMEYPKLPEVTDGKTIKIPIN 
VLKNIVRQTVFAVSAIEVRPVLTGVNWIIKENKLSAVATDSHRLALREIPLETDIDEEYNIVIPGKSLSE 
LNKLLDDASESIEMTLANNQILFKLKDLLFYSRLLEGSYPDTSRLIPTDTKSELVINSKAFLQAIDRASL 
LARENRNNVIKLMTLENGQVEVSSNSPEVGNVSENVFSQSFTGEEIKISFNGKYMMDALRAFEGDDIQIS 
FSGTMRPFVLRPKDAANPNEILQLITPVRTY 

應該來在一條直線上,並同時行之前的換行以「>」不應該被刪除。我試過

\n^[a-z] 

但它也刪除每行的第一個字母。如果不刪除每行的第一個字母並忽略以「>」開頭的行,是否可以這樣做? thax提前。 Iam尋找一個textpad的代碼。

回答

0

我已經解決了這個替換它由usin g perl中的正則表達式。對於任何未來需要類似東西的人

use warnings; 

print "Please enter the name of the file\n"; 
my $n =<STDIN>; 

print "Please enter the name of the output file\n"; 
my $n1=<STDIN>; 

open(INFO,"$n") or die "cannot open"; 
@a = <INFO>; 

#print @a; 

foreach(@a) 
    { 
     $_ =~ s/\n//g; 
     $_ =~ s/>/\n>/g; 
    } 
#print @a; 
open (MYFILE, ">$n1"); 
print MYFILE @a; 
close(MYFILE); 
close(INFO); 

這非常簡單。

0

你可以使用這個表達式

[\r\n]+(?=[a-zA-Z]) 

empty string

OR

[\r\n]+([a-zA-Z]) 

取代它與\1$1取其工作

+0

我使用的窗口,這不適用於文本板。 –

+0

@ potterbond007你選擇了正則表達式的複選框 – Anirudha

+0

是的,我有..我現在正在嘗試與Perl相同。你有一個正則表達式,可以在perl中做同樣的事情。 –