次のファイルがあります。
A1-1915435_1_MIMAT0000069_MirBase_miR-16_microRNA_1_22-A1-1915435_1_ENSG00000206737_ENST00000384010_U1_snRNA_73_115
A1-2362643_1_MIMAT0000732_MirBase_miR-378_microRNA_1_21-A1-2362643_1_ENSG00000222328_ENST00000410396_U2_snRNA_168_211
マイクロRNAセクションとENSGセクションの別々のタブを持つ出力が必要です。このような:
miR-16_microRNA ENSG00000206737
miR-378_microRNA ENSG00000222328
Perlスクリプトを書くことはできますが、awk、sed Perlなどを使用するコマンドラインソリューションが必要です。
ベストアンサー1
perl -pe 's!.*(miR-\d+_microRNA).*(ENSG\d+).*!$1\t$2!'
説明する?
もちろんです。申し訳ありません。
- 各行について (perl -p)
- 正規表現を
$1 tab $2
whereに置き換える$1
$2
キャプチャグループの逆参照として番号が付けられます(...)
。ほとんどすべての最新の正規表現エンジンがこれをサポートします。
- 正規表現情報:
.
= を除くすべての文字\n
.*
=文字シーケンス(代替では無視)\d
=数字(と同じ[0-9]
)\d+
= 1つ以上\d
何でも見てくださいreg式チュートリアルより詳細な説明が必要です。