如何使用sed用括号替换数字?

xml*_*lmx 10 sed regular-expression

我有一个文件 test.txt 包含许多行,如下所示:

hello:123: world
hello:783: world
hello:479: world
......
Run Code Online (Sandbox Code Playgroud)

如何使用sed命令替换如下行?

hello:(123, 0): world
hello:(783, 0): world
hello:(479, 0): world
......
Run Code Online (Sandbox Code Playgroud)

提前致谢!

小智 15

你觉得这个怎么样?我希望这是你所需要的。

sed -e 's/\([0-9]\+\)/(\1, 0)/g'
Run Code Online (Sandbox Code Playgroud)

测试

echo "hello:123: world
hello:783: world
hello:479: world" | sed -e 's/\([0-9]\+\)/(\1, 0)/g'
Run Code Online (Sandbox Code Playgroud)

结果

你好:(123, 0): 世界

你好:(783, 0): 世界

你好:(479, 0): 世界

  • 如果第一列有 `he123llo`,这将失败,使用 `sed -e 's/\(.*:\)\([0-9]\+\)\(:.*\)/\1(\2 , 0)\3/g'` 代替 (3认同)