【问题标题】:Bash shell script return first number / integer from multiline variable?Bash shell脚本从多行变量返回第一个数字/整数?
【发布时间】:2019-04-11 10:28:42
【问题描述】:

字符串可能在任何给定位置包含“N/A”,我只需要在我正在处理的脚本中使用第一个返回的整数/数字。

示例:

STRING="N/A"$'\n'"77"$'\n'"66"$'\n'"222"
echo "${STRING}"
echo "${STRING//[!0-9]/}"

返回:7766222

期望的输出是:77

这提供了一些有用的信息:https://linuxconfig.org/how-to-extract-a-number-from-a-string-using-bash-example

【问题讨论】:

    标签: string bash shell variables format


    【解决方案1】:

    使用 sed

    $ sed '/^[0-9]\+$/q;d' <<< "$STRING"
    77
    

    使用 awk

    $ awk '/^[0-9]+$/{print;exit}' <<< "$STRING"
    77
    

    【讨论】:

    • 谢谢!如果在 shell 脚本中执行此操作,您可以将结果封装到变量中: myvariable=$(sed '/^[0-9]\+$/q;d'
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-16
    • 2013-04-18
    • 1970-01-01
    • 2011-01-04
    • 1970-01-01
    • 2023-04-06
    相关资源
    最近更新 更多