从线上grep数字和字符。 Perl的

时间:2014-02-11 02:39:12

标签: regex perl bash grep

这是我的数据:

@someDescription    ID    1234_Reverse_4321 ...
@someDescription    1234_4321 ...
@someDescription    ID    1234_4321 ...

我想从每一行中掏出这些:

1234_Reverse_4321
1234_4321

我使用Perl但我也熟悉bash 我使用了这些数字,但实际上我的范围是600-5000(但可能是0-10,000)

如果文件在数据不可用时用空格统一格式化(第2行),我就不会遇到这个问题。

2 个答案:

答案 0 :(得分:3)

最好使用awk:

awk 'NF>2 {print $3}' file
1234_Reverse_4321
1234_4321
1234_4321

答案 1 :(得分:0)

纯粹正则表达式:

  

/@\w+\s+(?:ID\s+)?(\w+)/g