0

我有一个包含以下内容的文件

文件名:VersionInfo.properties

Installed Version:13.7.0-2
Previous Version:13.6.0-12

文件名:main.sh

#!/bin/ksh
new_maj_version=$1 # sample content: 13.7.0
new_min_version=$2 # sample content: 4

每次我运行 main.sh 时,我都希望它编辑我的 VersionInfo.properties 文件。安装的版本应该转移到以前的版本,我的 new_maj_version 和 new_min_version 放在安装的版本中。我怎样才能实现它?

运行我的 main.sh 后的示例输出

文件名:VersionInfo.properties

Installed Version:13.7.0-4
Previous Version:13.7.0-2
4

2 回答 2

1

试试这个:(保存到你的 main.sh):

#!/bin/ksh
awk -F: -v a="$1" -v i="$2" 'NR==1{n=$2;print $1":"a"-"i;next}{print $1":"n}'  /VersionInfo.properties > /tmp/tmpVersion && mv /tmp/tmpVersion VersionInfo.properties

尝试

main.sh "13.7.0" "4"
于 2013-07-11T14:49:18.573 回答
0

这应该可以解决问题

 sed -e "/Installed Version/{s/Installed Version:\(.*\)/Installed Version:$major_version-$minor_version\nPrevious Version:\1/; n}" -e '/Previous Version/{d}'
VersionInfo.properties
于 2013-07-11T14:52:00.653 回答