You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用grep扩展正则表达式筛选指定纯数字行的问题

grep扩展正则表达式筛选指定纯数字行的问题

嗨,我看你想用grep的扩展正则来提取那些纯数字的行(就是那些单独的24),不过你当前写的正则表达式有点小问题,咱们来调整一下:

首先看你现在用的命令:

grep -E '^  [0..9]'

这里的问题有两个:一是[0..9]的写法不对,正则里表示数字范围应该用[0-9];二是这个表达式只匹配开头有两个空格,后面跟一个数字的行,完全不符合你要筛选纯数字行的需求。

针对你的输入内容:

24
-38.54270131
24
-38.54085331
24
-38.53603119
24
-38.53427780
24
-38.53396521
24
-38.53226876
24
-38.53211376

要得到只包含纯数字的行(也就是所有的24),你需要用能精准匹配整行都是数字的正则,推荐用这个命令:

grep -E '^[0-9]+$'

我给你解释下这个正则的含义:

  • ^:匹配一行的开头
  • [0-9]+:匹配一个或多个阿拉伯数字(+表示至少出现一次)
  • $:匹配一行的结尾

这样组合起来,就只会匹配那些从开头到结尾全是数字的行,刚好符合你想要的预期输出:

24
24
24
24
24
24
24

如果你的目标行可能有前导空格?不过看你的输入和预期,这些24都是单独占一行没有空格的,所以上面的命令完全适用。要是有前导空格的情况,你可以把正则改成^ *[0-9]+$,其中*匹配零个或多个空格。

备注:内容来源于stack exchange,提问作者Another.Chemist

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.20 10:58:14