我想用sed替换每个整数后面的字符。
示例:
444 d
应该去:
444,d
sed -r 's/([0-9]+)./\1,/g'
用逗号替换数字后的任意字符。唯一的问题是,该行末尾的数字还会创建一个额外的逗号。
答案 0 :(得分:5)
您可以使用捕获组来执行此操作:
sed 's/\(\d\+\)./\1,/g'
或(因为使用GNU sed,您可以通过使用扩展正则表达式来避免所有转义括号)
sed -r 's/([0-9]+)./\1,/g'
这是demo showing what the regex does。
[0-9]+
模式匹配一个整数(不带小数),即使在较长的字符串中也是如此。即使在较长的单词中也是如此。