string - 使用 Bash 进行减法
问题描述
我正在尝试使用 bash 从十进制数中减去。
例如:如果我有一个数字 1.0.0.55,我想减去得到 1.0.0.54。
这是我目前拥有的:
#!/bin/bash
LATEST_RELEASE="myproduct_1.0.0.55"
RELEASE_NUMBER=`echo $LATEST_RELEASE | sed 's/[^0-9.]//g'`
echo $RELEASE_NUMBER
#this only works with whole numbers (i.e. 10055)
PREVIOUS_RELEASE=$(($RELEASE_NUMBER - 1))
echo $PREVIOUS_RELEASE
#EOF
任何帮助,将不胜感激!
谢谢!
解决方案
您需要隔离要从中提取的字符串部分,1
因为您无法1
从字符串中进行子跟踪1.0.0.55
。
考虑在这里使用 awk:
echo '1.0.0.55' | awk 'BEGIN{FS=OFS="."}{$4=$4-1}1'
推荐阅读
- python - ModuleNotFoundError:Anaconda 中没有名为“pandas._libs.tslibs.base”的模块
- css - 我的弹性项目不会采用宽度和高度属性并保持在一条线上
- python - 函数内的python locals()包括在函数外导入的类
- kubernetes - Error: unknown api groups settings.k8s.io from kube-apiserver
- python - 读取 json 文件时编码 utf-8 不起作用
- web - 一个有效的 URL 是否可以有效地包含 1 个以上的问号?
- javascript - 状态更改时如何使反应组件重新呈现?
- algorithm - 在方法中找到描述递归的公式
- vb.net - 与类共享值并通过属性返回值
- redis - 当我运行“redis-server --service-start”时,出现错误代码 1056“启动服务失败:未知错误”