我有一些包含这样的字符串的.yml文件
test_test_servicename: test-alpha
最后我想递归追加“-beta”
test_test_servicename: test-alpha-beta
我在这里发现了一个类似的帖子,他们说要使用:
sed '/^servicename:/ s/$/-beta/' file
但我不知道为什么它在我的情况下不起作用。如果我删除^
它可以正常工作,但文件中包含^M
个字符。
我做错了什么?
答案 0 :(得分:0)
您会看到该文件已满#{1}}"可能是因为您在Windows计算机上生成或上次编辑了该文件,该计算机使用CR + LF作为行结尾。 ^M
是CR(回车)字符。在将^M
应用于之前,使用此命令将文件转换为Unix行结尾(仅限LF)。
sed
dos2unix <your file>
没错。丢弃插入符sed '/servicename:/ s/$/-beta/' file
。
在RegEx中,插入符表示行的开头。因此^
会匹配这些行:
^servicename:
但不是这些行
servicename: abc
servicename::::::