队
我有一个包含以下数据的文件。
[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。请帮我解决我在做错的地方。
答案 0 :(得分:0)
您将BRE POSIX模式传递给sed
命令,因此(
,)
和+
被视为文字字符。
您可以将-e
替换为-r
以使模式被解析为POSIX ERE,或者使用
sed 's/[0-9][0-9]*/First &/'
其中[0-9][0-9]*
匹配1个或多个数字,替换部分中的&
插入整个匹配。
答案 1 :(得分:0)
You don't need g
and +
doesn't have a special meaning in this context (BRE syntax). If your file is as said, you could use:
sed 's/^./First: &/' file