2012-04-08 35 views
-4

我想修剪掉這個特定的文件,因爲它包含數據,所以只需要突出顯示的部分。我已經看過其他一些腳本,但是它們的寫法是刪除一些常量值的列。使用perl修剪文件中的多列

的數據是:

id=69 rna=**5_8S_rRNA** ntax=61 
id=58 rna=**U1** ntax=100 
id=56 rna=**U2** ntax=211 
id=37 rna=**tRNA** ntax=967 
id=75 rna=**Vault** ntax=75 
id=53 rna=**RNaseP_nuc** ntax=117 
id=57 rna=**RNaseP_bact_a** ntax=306 
id=62 rna=**RNaseP_bact_b** ntax=114 
id=41 rna=**U3** ntax=26 
id=50 rna=**6S** ntax=154 
id=84 rna=**DsrA** ntax=5 
id=48 rna=**U4** ntax=178 
id=46 rna=**SRP_euk_arch** ntax=102 
id=46 rna=**U5** ntax=181 
id=65 rna=**GcvB** ntax=26 
id=71 rna=**Telomerase-vert** ntax=37 
id=50 rna=**Telomerase-cil** ntax=20 
id=49 rna=**U6** ntax=200 
id=43 rna=**Intron_gpI** ntax=30 
id=51 rna=**RNase_MRP** ntax=67 
id=33 rna=**SECIS** ntax=61 
id=90 rna=**Histone3** ntax=64 
id=86 rna=**OxyS** ntax=5 
id=98 rna=**RRE** ntax=65 
id=54 rna=**IRE** ntax=39 
id=73 rna=**rne5** ntax=6 
id=88 rna=**snoR9** ntax=5 
id=91 rna=**GlmZ_SraJ** ntax=21 
id=77 rna=**HDV_ribozyme** ntax=33 
id=72 rna=**U8** ntax=49 
id=87 rna=**7SK** ntax=45 
id=78 rna=**VA** ntax=54 
id=79 rna=**RNAI** ntax=10 
id=98 rna=**FinP** ntax=6 
id=82 rna=**Vimentin3** ntax=19 
id=74 rna=**S15** ntax=79 

我只是想保持在星號的項目,一切已去。

+0

看起來沒有什麼大膽的給我。顯示您的確切預期輸出。 – toolic 2012-04-08 22:51:58

回答

2

如果這是在Linux系統上,這個Perl單線程將產生你需要的結果。

perl -ne '/rna=(\S+)/ and print "$1\n"' myfile 

如果您使用的是Windows,使用

perl -ne "/rna=(\S+)/ and print qq($1\n)" myfile 

輸出

5_8S_rRNA 
U1 
U2 
tRNA 
Vault 
RNaseP_nuc 
RNaseP_bact_a 
RNaseP_bact_b 
U3 
6S 
DsrA 
U4 
SRP_euk_arch 
U5 
GcvB 
Telomerase-vert 
Telomerase-cil 
U6 
Intron_gpI 
RNase_MRP 
SECIS 
Histone3 
OxyS 
RRE 
IRE 
rne5 
snoR9 
GlmZ_SraJ 
HDV_ribozyme 
U8 
7SK 
VA 
RNAI 
FinP 
Vimentin3 
S15 
+2

您可以忽略大約1美元的報價,這些報價僅用於插入\ n。 '-l'開關會爲你添加換行符。或者,使用'-E'而不是'-e',可以使用'say'而不是'print',但需要v5.10或更高版本。 :) – 2012-04-08 23:02:54