使用perl修剪文件中的多个列

时间:2012-04-08 22:28:18

标签: perl variables multiple-columns trim

我正在尝试删除此特定文件,并且只需要突出显示的部分,因为它包含数据。我已经查看了一些其他脚本,但是编写它们是为了删除常量值的列。

数据是:

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

我只是希望将这些项目保留在星号中,其他一切都必须去。

1 个答案:

答案 0 :(得分: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