问题描述
VERSION_NUMBER: 1
我需要将 VERSION_NUMBER
的值转换为数字并生成 n+1
并将其写入一个变量,例如变量 test
。
我如何使用 sed
解决方法
假设:
- 输入文件中只有一行
- 无需验证
:
后面的值是否为数字 - 无需使用新值更新文件
输入文件:
$ cat myfile
VERSION_NUMBER: 1
一个sed
想法:
$ x=$(sed -En 's/^.*: (.*)$/\1/p' myfile)
$ ((x++))
$ echo "${x}"
2
一个cut
想法:
$ x=$(cut -d: -f2 myfile)
$ ((x++))
$ echo "${x}"
2
与 awk
相同:
$ x=$(awk '{print $2}' myfile)
$ ((x++))
$ echo "${x}"
2
在评论中,OP 询问如何使用新值更新文件。
由于我们只讨论一行,因此以下...
$ echo "VERSION_NUMBER: ${x}" > myfile
... 可能比运行另一个 sed
或 awk
命令来覆盖当前文件更容易/更简单。