use*_*266 5 shell bash text-processing
我想检查一个字符串是否不止一次包含一个字母(不是一个特定的字母,实际上是任何字母)。
例如:
用户:
test.sh this list
Run Code Online (Sandbox Code Playgroud)
脚本:
if [ "$1" has some letter more then once ]
then
do something
fi
Run Code Online (Sandbox Code Playgroud)
您可以使用grep.
正则表达式\(.\).*\1匹配任何单个字符,后跟任何字符,后跟相同的第一个字符。
grep 如果至少一行与正则表达式匹配,则返回成功。
if echo "$1" | grep -q '\(.\).*\1' ; then
echo "match" ;
fi
Run Code Online (Sandbox Code Playgroud)
请注意,\(.\)匹配任何字符而不是任何字母,也许您必须将正则表达式限制为您对“真正任何字母”的特定定义。您可以使用诸如\([[:alnum:]]\).*\1,\([[:alpha:]]\).*\1或 之类的东西\([a-df-z1245]\).*\1。
| 归档时间: |
|
| 查看次数: |
4004 次 |
| 最近记录: |