【发布时间】:2011-01-22 14:27:26
【问题描述】:
我有一个文件,其中包含如下所示的行:
>AF001546_1 [88 - 462] 1 MGQQ
>AF001543_1 [88 - 261] ACGT
并不是每行可以包含 6 或 5 个字段。我想做的是捕捉 字段 1、2、3(仅 num)、5(仅 num)和最后一个字段(ACGT 或 MGOQ 字符串)。
所以预期的输出是这样的:
>AF001546_1 88 462 MGQQ
>AF001543_1 88 261 ACGT
现在我用的perl one-liner是这个,但是失败了:
perl -lne 'print "$1 $2 $3 $4" if /(\w+)_\d+\D+(\d+)\D+(\d+)\](\D+)/'
正确的做法是什么?
【问题讨论】: