I have in my package.json
file this line :
"version": "5.0.0",
And I want to replace 5.0.0
with another dynamic value. I tried like this :
sed -i "s%5.0.0%5.1.1%g" "package.json"
But is not good, because I don't know previous value that is 5.0.0. Please help me with a regex or something like that
CodePudding user response:
Change 5.6.7 to whatever you want. You can grep or find -exec to change many files at once.
sed -i -E 's/"version": "([0-9] (\.[0-9] ) )",/"version": "5.6.7",/' package.json
CodePudding user response:
You could use a backreference:
sed -i -E 's/(^ *?"version". *)[0-9.] (.*)/\1 5.1.1 \2/g''
The \1
guarantees that the string "version" formatted the same as the input, and you don't have to retype this.