【问题标题】:Adding space between number and text using sed使用 sed 在数字和文本之间添加空格
【发布时间】:2017-10-19 23:56:44
【问题描述】:

我想使用 sed 命令在数字和文本之间添加空格:16a 将是 16 a,89jas 将是 89 jas。

请告诉我答案

谢谢

【问题讨论】:

    标签: sed


    【解决方案1】:

    这是一个简单的思考方式:

    echo "1abc2abcd3efghi10z11jkl100pqrs" | \
     sed -r 's/([0-9])([a-zA-Z])/\1 \2/g; s/([a-zA-Z])([0-9])/\1 \2/g'
    
    • 在数字字母字符串和字母数字字符串之间添加空格
    • () 是捕获组,\1\2 是返回第一个和 第二个捕获组

    【讨论】:

    • 非常好。为了 unicode 安全,[0-9][a-zA-Z] 应替换为 [[:digit:]][[:alpha:]]
    【解决方案2】:
    sed 's/[0-9][0-9]*/& /g'
    

    或使用 -E 调用时支持 ERE 的 sed,例如GNU sed 和 OSX sed:

    sed -E 's/[0-9]+/& /g'
    

    【讨论】:

      猜你喜欢
      • 2022-11-04
      • 2013-05-14
      • 2018-06-04
      • 1970-01-01
      • 2023-01-02
      • 2012-06-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多