我有几个文件包含这一行
Release: X
我希望在所有文件中增加X的值。
如果文件之间X是恒定的,我可以编写一个Bash脚本循环遍历这些文件并执行以下操作(其中$1包含先前版本号,$2为新版本号,即$1+1):
sed 's/Release: '$1'/Release: '$2'/' <$file >$file.new
如果文件之间的发布版本号不同,我该怎么办?
可以使用sed吗?
还是应该使用其他工具?
使用awk
- 它是处理这种情况的恰当工具:
awk '/Release: [0-9]+/ { printf "Release: %d\n", $2+1 }' < $file > $file.new
翻译:
perl -pe "$_=~s/Release: (\d+)/'Release: '. ($1+1)/e;" < file > file.new