【问题标题】:Grep arguments which contains at least a number至少包含一个数字的 Grep 参数
【发布时间】:2021-01-27 11:30:11
【问题描述】:

如何在 shell 脚本中 grep 包含至少一个数字的参数?

示例(参数数量不限!):

./test.sh Hello W0rld1

它应该输出:

W0rld1

对于我的脚本,我已经这样做了:

searchErrorNumber=$(echo "${@}" | grep -o '[0-9]*')

同样的例子,它输出只是数字:

ERROR : 0 1 is not valid.

它应该输出这样的单词:

ERROR : W0rld1 is not valid.

谢谢你帮助我!

【问题讨论】:

    标签: linux bash shell grep


    【解决方案1】:

    在 bash 中,您可以使用数组来保存选定的参数。使用[[ ... == ... ]] 和参数匹配来查找数字。

    #! /bin/bash
    
    contain_digit=()
    for arg ; do
        shift
        if [[ "$arg" == *[0-9]* ]] ; then
            contain_digit+=("$arg")
        fi
    done
    printf '%s ' "${contain_digit[@]}"
    echo
    

    如果您想采用grep 方式,请使用printf 在单独的行上输出每个参数(不适用于多行参数)。

    printf '%s\n' "$@" | grep '[0-9]'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-28
      • 2022-01-13
      • 2014-10-25
      • 1970-01-01
      • 2010-10-29
      • 1970-01-01
      • 1970-01-01
      • 2013-08-11
      相关资源
      最近更新 更多