Sed在每个数字后替换字符

时间:2015-08-12 23:05:26

标签: regex sed

我想用sed替换每个整数后面的字符。

示例:

444 d 应该去: 444,d

编辑: stribizhev 的答案帮助我找到了sed(GNU sed)4.2.2的解决方案

sed -r 's/([0-9]+)./\1,/g'

用逗号替换数字后的任意字符。唯一的问题是,该行末尾的数字还会创建一个额外的逗号。

1 个答案:

答案 0 :(得分:5)

您可以使用捕获组来执行此操作:

sed 's/\(\d\+\)./\1,/g'

或(因为使用GNU sed,您可以通过使用扩展正则表达式来避免所有转义括号)

sed -r 's/([0-9]+)./\1,/g'

这是demo showing what the regex does

[0-9]+模式匹配一​​个整数(不带小数),即使在较长的字符串中也是如此。即使在较长的单词中也是如此。