【问题标题】:Removing Leading 0 and applying Regex to Sed删除前导 0 并将正则表达式应用于 Sed
【发布时间】:2016-10-15 09:04:07
【问题描述】:

我有几个文件名,为方便起见,我将它们放在一个文件中,如下所示:

01.action1.txt
04action2.txt
12.action6.txt
2.action3.txt
020.action9.txt
10action4.txt
15action7.txt
021action10.txt
11.action5.txt
18.action8.txt

如您所见,格式不一致,我正在尝试从这些文件名 1、4、12、2、20 等中提取第一个数字

我有以下正则表达式

(\.)?action\d{1,}.txt

哪个成功匹配 .action[number].txt 但我还需要匹配前导 0 并将其应用于我的替代品,在 sed 中使用空白,所以我只剩下前导数字。我无法匹配前导 0 并将整个内容应用于 sed。

谢谢

【问题讨论】:

    标签: regex bash sed


    【解决方案1】:

    使用 GNU sed:

    sed -r 's/0*([0-9]*).*/\1/' file
    

    输出:

    1 4 12 2 20 10 15 21 11 18

    见:The Stack Overflow Regular Expressions FAQ

    【讨论】:

      【解决方案2】:

      我不知道下面的awk 是否有帮助,但它也可以:

      awk '{print $1 + 0}' file
      1
      4
      12
      2
      20
      10
      15
      21
      11
      18
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-06-01
        • 2017-03-06
        • 1970-01-01
        • 1970-01-01
        • 2021-11-03
        • 2019-02-16
        • 1970-01-01
        相关资源
        最近更新 更多