我有一个字符串,比如time=1234,我想在=符号后面只提取数字.然而,该数目可以是在0和100000的范围(例如- ,time=1,time=23,time=99999等等).
我尝试了类似的东西$(string:5:8},但这只适用于一定长度的例子.
如何在=符号后获取所有内容的子串?我宁愿做没有像外界命令cut或者awk,因为我会在可能有也可能没有该功能的设备上运行此脚本.我知道有些例子使用外部函数,但我试图找到一个没有使用它的解决方案.
s=time=1234
time_int=${s##*=}
echo "The content after the = in $s is $time_int"
Run Code Online (Sandbox Code Playgroud)
这是一个参数扩展,匹配*=从变量前面匹配的所有内容- 因此,所有内容都包括最后一个=.
如果打算将其视为非贪婪(即仅删除第一个 =而不是最后一个内容 =),请使用${s#*=}- 一个#而不是两个.
参考文献:
| 归档时间: |
|
| 查看次数: |
401 次 |
| 最近记录: |