shell - How to add a new line to a file and match the indentation from prev line -
i have:
globalweather: name: 'globalweather:1.0.0'
i tried: sed -i '' "s/^\( *\)name: '$api_name'$/&\n\1\$ref: $1/" $2
but i'm getting:
globalweather: name: 'globalweather:1.0.0'n $ref: globalweather_1.0.0.yaml
i want:
globalweather: $ref: globalweather_1.0.0.yaml
can me on i'm missing?
you can capture indention , use substitution insert it:
sed 's/^\( *\)something$/&\n\1something else/'
breakdown:
s/ ^ # start of string \( *\) # capture 0 or more spaces $ # end of string / & # full matched string \1 # captured spaces else /
but there might more elegant solution a
fter command.
Comments
Post a Comment