我在计算群集上有一些分析代码。代码的输出是浮点数表。最终输出打印到标准输出,其前面有一堆其他消息并跟随它。它看起来像这样:
Welcome to Computer X
Setting up parallel environment...
Setup complete. Running tasks....
0.059 9.342114 10.324921 0.3 0
0.123 123.4231102 231.49 45.7 84
Job completed on July 4, 1776
Thank you and have a nice day
我只需要提取数字。不幸的是,我不知道先验的每个数字将包含多少位数(它将是0.342123或1或1.05),以及有多少文本行将在数字之前或之后。
我之前使用过grep,但我对正则表达式一无所知。我查了一些例子,比如说,如何匹配电话号码(### - ### - ####)等,但我想不出任何你不知道要跳过多少位数的地方。我唯一知道的是,例如,将提取5列数据。
答案 0 :(得分:1)
将grep -ho
与正则表达式
^(\d+(\.\d+)?(\s+|$))+$
或者如果你确定5个数字总是在行中,那么
^(\d+(\.\d+)?(\s+|$)){5}$