regex – 检查字符串以查看它是否包含UNIX中的数字字符

前端之家收集整理的这篇文章主要介绍了regex – 检查字符串以查看它是否包含UNIX中的数字字符前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我是UNIX的新手,今天只在工作中开始工作,但对 Java有经验,并且有以下代码
#/bin/bash
echo "Please enter a word:"
read word
grep -i $word $1 | cut -d',' -f1,2 | tr "," "-"> output

这工作正常,但我现在需要做的是检查何时读取单词,它只包含字母,如果它有打印数字字符“无效输入!”消息并要求他们再次输入.我假设使用if语句的正则表达式将是这样做的简单方法,但我无法理解如何在UNIX中使用它们,因为我已经习惯了它们的Java应用程序.任何有关这方面的帮助将非常感激,因为我在搜索时找不到帮助,因为在linux中使用正则表达式的所有解决方案我发现只有处理它是全是数字还是不是.

还有另一种方法.如果找到匹配项,Grep将退出0,因此您可以测试退出代码
echo "${word}" | grep -q '[0-9]'
if [ $? = 0 ]; then
    echo 'Invalid input'
fi

这是/ bin / sh兼容的.

结合Daenyth和John的建议,这就变成了

if echo "${word}" | grep '[0-9]' >/dev/null; then
    echo 'Invalid input'
fi

猜你在找的Bash相关文章