我有一个包含以下内容的文件
文件名:的 VersionInfo.properties
Installed Version:13.7.0-2
Previous Version:13.6.0-12
FileName: 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
答案 0 :(得分: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"
答案 1 :(得分:0)
这应该可以解决问题
sed -e "/Installed Version/{s/Installed Version:\(.*\)/Installed Version:$major_version-$minor_version\nPrevious Version:\1/; n}" -e '/Previous Version/{d}'
VersionInfo.properties