【发布时间】:2018-04-18 17:27:17
【问题描述】:
团队,
我有一个包含以下数据的文件。
[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。请帮我找出我做错的地方。
【问题讨论】:
-
使用
sed -r ...,而不是-e、sed -r 's/[0-9]+/First &/'。执行内联替换:sed -i -r 's/[0-9]+/First &/' db -
@Wiktor Stribiżew 请给我完整的命令
-
使用
sed -r 's/[0-9]+/First &/'。要执行内联替换:sed -i -r 's/[0-9]+/First &/' db。此外,sed 's/[0-9][0-9]*/First &/'也可以使用。 -
@Wiktor Stribiżew 感谢它的工作。还有一个帮助如何进行多个反向引用示例:第一个:\1 和第二个:\2 等等如何做到这一点
-
请用新字符串更新问题。字符串的格式是否始终相同?什么是预期的输出?实际上,这看起来像是一个不同的问题。