【发布时间】:2012-10-25 18:17:05
【问题描述】:
我希望搜索一个字符串是否在中间包含'CI',无论它是多长。字母可以出现在任何地方,长度可以变化。我也希望将其用作 shell 脚本的条件开关。所以任何可以在 IF 中使用的命令来确定一个字符串是否包含这个。感谢您的帮助,因为这可以让您深入了解如何使用它。
【问题讨论】:
我希望搜索一个字符串是否在中间包含'CI',无论它是多长。字母可以出现在任何地方,长度可以变化。我也希望将其用作 shell 脚本的条件开关。所以任何可以在 IF 中使用的命令来确定一个字符串是否包含这个。感谢您的帮助,因为这可以让您深入了解如何使用它。
【问题讨论】:
不是正则表达式,但适用于 POSIX sh(更便携)
case "$FOO" in
*CI*)
# do something
;;
esac
正则表达式
if expr "$FOO" : '.*CI' >/dev/null; then
# do something
fi
if echo "$FOO" | grep 'CI' >/dev/null; then
# do something
fi
不是带有许多 shell 的正则表达式 (bash ksh)
if [[ $FOO = *CI* ]]; then
# do something
fi
正则表达式 bash 特定
if [[ $FOO =~ CI ]]; then
# do something
fi
【讨论】:
你可以使用
echo $FOO | grep CI
我猜。
【讨论】: