linux - 如何在shell中提取数字并分配给变量

标签 linux bash shell awk grep

echo DEN_ML2.3_R02.zip | grep -o '[0-9]\+'

Output: 

2
3  
02

我想从 DEN_ML2.3_R02.zip 中 grep 2.302 并分配给变量

最佳答案

$ echo DEN_ML2.3_R02.zip | grep -Eo '\-?[0-9]+(\.[0-9]+)?'
                                              _________ _
                                                ^       ^
                                             group    quantifier

量词 ? 表示组是可选的

输出:

2.3
02

分配给变量要求:

$ read a1 a2 < <(echo $(grep -Eo '\-?[0-9]+(\.[0-9]+)?' <<< "DEN_ML2.3_R02.zip"))

$ read a1 a2 < <(
    grep -Eo '\-[0-9]+(\.[0-9]+)?' <<< "DEN_ML2.3_R02.zip" |
    tr '\n' ' '
)

结果:

$ echo $a1
2.3
$ echo $a2
02

关于linux - 如何在shell中提取数字并分配给变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49307002/

相关文章:

bash - 如何在 bash 内联字符串 shell 替换中表示换行符?

json - Github api 不解析多行 shell 变量

Python 不会运行整个 shell 脚本?

Java.lang.OutOfMemoryError : unable to create new native thread -Linux 错误

linux - linux下如何限制SVN的IP地址?

linux - Ubuntu 中的 PATH 变量设置在哪里?

linux - 每 5 分钟将 curl 输出重定向到动态文件名

linux - 是在某处调用的脚本

android - 是否可以从 Android 应用程序执行 Shell 脚本

linux - 根据 nice 值终止进程 (bash)