bash脚本增量编号,以零前缀结尾

bsa*_*ner 1 bash scripting awk

给出一个包含这样内容的文件:

foo: 8.3.1
bar: 803001
Run Code Online (Sandbox Code Playgroud)

我需要一个bash脚本来读取这个文件增加最后一个数字,并考虑第二行的最后三位数作为xyx中z的空间增长到三位数(并用新数据覆盖原始文件:

输入1:

foo: 8.3.1
bar: 803001
Run Code Online (Sandbox Code Playgroud)

输出1:

 foo: 8.3.2
 bar: 803002
Run Code Online (Sandbox Code Playgroud)

输入2:

foo: 8.3.9
bar: 803009
Run Code Online (Sandbox Code Playgroud)

输出2:

 foo: 8.3.10
 bar: 803010
Run Code Online (Sandbox Code Playgroud)

输入3:

foo: 8.3.199
bar: 803199
Run Code Online (Sandbox Code Playgroud)

输出3:

 foo: 8.3.200
 bar: 803200
Run Code Online (Sandbox Code Playgroud)

我可以在2秒内在java中执行此操作,但我需要在shell脚本中执行此操作,否则我将面临构建团队无休止的嘲弄.

没有一些粗略的字符串拆分任何光滑的sep命令将是一个很大的帮助!

kar*_*kfa 7

awk 救援!

 awk -v d='.' '{n=split($2,v,d); 
                if (n>1) $2=v[1] d v[2] d v[3]+1; 
                else $2++}1' file
Run Code Online (Sandbox Code Playgroud)

根据文件中的其他内容,您可能需要在声明之前使用条件限定替换.