sed replace content within double quotes

后端 未结 3 1722
失恋的感觉
失恋的感觉 2021-01-06 06:56

I need to replace the versionName in a xml file from a shell script using sed.



        
相关标签:
3条回答
  • 2021-01-06 07:06

    Replace not-", like this:

    sed -i .old '/android:versionName/ s/="[^"][^"]*"/="NEW VERSION NAME"/' AndroidManifest.xml
    
    0 讨论(0)
  • 2021-01-06 07:08
    sed 's/\([[:blank:]]android:versionName="\)[^"]*"/\1Your New Value"/' YourFile
    
    • assuming that all section that have android:versionName will be changed
    • with GNU sed still better with replacing [[:blan:k]] by \(^\|[[:blank:]]\) (and a -i if direct modification avoiding temporary file)
    0 讨论(0)
  • 2021-01-06 07:25

    Considering the nature of xml and the version number, it is actually very safe to use a simpler command:

    sed -i '/versionName/s/".*"/"NEW VERSION NAME"/' AndroidManifest.xml
    

    P.S. in my opinion, it is very important to be able to simplify your shell script based on specific circumstances and reasonable assumptions.

    0 讨论(0)
提交回复
热议问题