团队,
我有一个包含以下数据的文件。
[root@ip-1-32-3-67 ~]# cat db
555
555
555
666
666
777
我需要在所有字符串前面添加字符串“First”
预期输出:
First: 555
First: 555
First: 555
First: 666
First: 666
First: 777
我的 sed 命令看起来像。
[root@ip-1-32-8-1 ~]# sed -e 's/\([0-9]+\)/First: \1/g' db
555
555
555
666
666
777
但输出没有添加 First。请帮助我找出我做错的地方。
最佳答案
您将 BRE POSIX 模式传递给 sed
命令,因此 (
, )
和 +
是被视为文字字符。
您可以将 -e
替换为 -r
以使模式被解析为 POSIX ERE,或者使用
sed 's/[0-9][0-9]*/First &/'
其中 [0-9][0-9]*
匹配 1 个或多个数字,替换部分中的 &
插入整个匹配项。
关于regex - 反向引用正则表达式在 sed 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49905641/