如何用bash替换文本文件中的单行?

时间:2014-06-05 20:59:21

标签: bash sed

我想用bash中的app.yaml文件替换一个(第一行)。 该文件如下所示:

application: my-appid
version: 1
...

my-appid应该替换为my-appid2

我尝试使用

sed -i.bak -e "s/application: \.*/application: \ 2/" app.yaml

但结果我得到application: 2my-appid

我该如何解决? (我的应用程序不应该被硬编码)

2 个答案:

答案 0 :(得分:3)

sed -i.bak -e 's/application: .*/&2/' app.yaml
替换中的

&将替换为与正则表达式匹配的所有内容。

答案 1 :(得分:0)

sed -i.bak -e '1s/ .*/ my-appid2/' app.yaml

在第1行,替换后跟任何内容的空格,后跟空格,后跟新的应用名称。