至少包含一个数字的Grep参数



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

示例(无限制参数数!):

./test.sh Hello W0rld1

它应该输出:

W0rld1

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

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

对于相同的示例,它输出只是数字:

ERROR : 0 1 is not valid.

它应该输出如下的单词:

ERROR : W0rld1 is not valid.

谢谢你的帮助!

在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 '%sn' "$@" | grep '[0-9]'

相关内容

  • 没有找到相关文章

最新更新