如何解决用递增的文本替换文件中的文本
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
命令来覆盖当前文件更容易/更简单。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。