我有:
globalweather:
name: 'globalweather:1.0.0'
我试过了:
sed -i '' "s/^\( *\)name: '$api_name'$/&\n\1\$ref: $1/" $2
但我得到了:
globalweather:
name: 'globalweather:1.0.0'n $ref: globalweather_1.0.0.yaml
我想:
globalweather:
$ref: globalweather_1.0.0.yaml
有人可以帮助我解决我失踪的问题吗?
答案 0 :(得分:5)
您可以捕获缩进,然后使用替换来插入它:
sed 's/^\( *\)something$/&\n\1something else/'
故障:
s/
^ # Start of string
\( *\) # Capture 0 or more spaces
something
$ # End of string
/
& # Full matched string
\1 # Captured spaces
something else
/
但使用a
fter命令可能会有一个更优雅的解决方案。
答案 1 :(得分:0)
@andlrc,谢谢你的建议,我明白了它,我使用的sed命令是:
sed -i '' "s/^\( *\)name: '$api_name'$/\1\$ref: $1/" $2