lag*_*lex 6 bash regex sed version
我有一个 bash 文件,我想在其中存储一个版本文本(最好是“ echo version 1.0.1”,以便在执行时自动打印出自己的版本)
我正在尝试创建一个将更新版本的命令组。
到目前为止我有
grep "echo version" ~/.bashrc | cut -c 14- | sed -e 's/\./\n/g'
Run Code Online (Sandbox Code Playgroud)
提取“echo version 1.0.1”,切出“echo version”并在点之间拆分版本
1
0
1
Run Code Online (Sandbox Code Playgroud)
并且我达到了正则表达式、bash 和 google-foo 的限制以提取最后一个数字(补丁版本),我可以将其递增并写回文件。
主要是,我如何获得最后一个数字?
另外,如果我应该做的更好,请提出建议。
awk -F'[ .]' '/^echo version/ {print $1,$2,$3"."$4"."$5+1}' ~/.bashrc
Run Code Online (Sandbox Code Playgroud)
输出:
echo version 1.0.2
Run Code Online (Sandbox Code Playgroud)
-F'[ .]': 字段分隔符空白和点
/^echo version/: 搜索以 ( ^)开头的行echo version
print $1,$2: 打印由空格分隔的字符串
$5+1: 将字符串/值增加 1