Home > other >  Replace a string using bash file
Replace a string using bash file

Time:03-09

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.

  • Related