如何使用 shell 脚本和匹配表达式替换文件中的子字符串?

How to replace a substring inside a file using shell script and match expression?

我需要替换 CoffeeScript 文件中的特定字符串。该文件包含以下值:

  version                : '1.3.3.1204.0'
  buildVersion           : '1.3.3.1204.4'

使用 shell 脚本,我想替换引号内的值,仅此而已。请注意,名称和 :

之间可以有 X 个空格

期望的输出:

  version                : '2.0.0.0101.0'
  buildVersion           : '2.0.0.0101.1'

:

$ sed "s@'1\.3\.3\.1204\.0'@'2.0.0.0101.0'@;\
       s@'1\.3\.3\.1204\.4'@'2.0.0.0101.1'@" file

输出

  version                : '2.0.0.0101.0'
  buildVersion           : '2.0.0.0101.1'

注意

添加-i开关,如果你想替换在飞行中