【问题标题】:Return digits from a string in bash shell从 bash shell 中的字符串返回数字
【发布时间】:2015-03-19 18:33:27
【问题描述】:

我想只返回 bash shell 中字符串变量的数字。例如,对于:

#!/bin/sh
file="./file_02.txt"
file_num_tag=?????????????????
echo $file_num_tag

...我想退货

>>> 02

我知道这非常琐碎,但我在四处寻找答案时感到困惑,我想知道最好的方法。

【问题讨论】:

    标签: regex string bash


    【解决方案1】:

    你可以使用这个 BASH 字符串替换:

    file="./file_02.txt"
    echo "${file//[^[:digit:]]}"
    02
    

    [^[:digit:]] 将匹配并删除字符串 file 中的所有非数字。

    或者使用tr(如果不使用 BASH):

    num=`echo "$file" | tr -cd '[[:digit:]]'`
    

    【讨论】:

    • 如果您使用的是不支持这种替换的古老外壳:echo "${file}" | tr -cd '0-9'
    • 谢谢,是的,没错,让我也补充一下。
    • 这正是我所需要的。谢谢!
    • @Jenny_Winters 如果这个答案正是您所需要的,那么请接受它。
    • 我绝对会做到这一点,最低时限已到!感谢您的建议!
    猜你喜欢
    • 2011-03-15
    • 1970-01-01
    • 1970-01-01
    • 2017-08-06
    • 2013-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-25
    相关资源
    最近更新 更多