bash 如何取文本中的数字

文件里有一行 public string strVersion = "34"; 用bash shell怎么只取 34 并且 +1 后再保存文件 文件保存后 应该是 public string strVersion = "35";

阅读 7.2k
3 个回答

希望你说的那「一行」确实长那么样,没有多什么也没有少什么。

awk '/public string strVersion = "[0-9]+";/ { d = substr($5, 2, length($5)-3); sub(d, d+1); }; 1'

看语法,感觉像是JAVA系

可能可以使用搜索和正则。

不过我觉得可以考虑写一个class BashHelperConsole, 这个class 引用你这个strVersion所属的类,然后Console提供一个公共方法,输出strVersion到stdout里去;你的bash可以使用java命令行直接调用这个BashHelperConsole类,把返回作为变量内容,形如:

strVersion=$( calling_command )

我的项目里面都是这么做的,因为自己输出自己想要的东西 所以很正确。只是要2个语言互相配合啦。

Bash Manual 里面有一个Arithmetic Expansion, 应该就是你要找的答案。

根据文章可以知道
$((strVersion + 1))
我没有实际试过,应该是这个。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题