我想知道如何在 shell 脚本中进行纯子字符串匹配。
例如,如果我有
STRING1="http://127.0.0.1/"
STRING2="http://127101011/"
SUBSTRING="127.0.0.1"
Run Code Online (Sandbox Code Playgroud)
我希望 SUBSTRING 匹配 STRING1 但不匹配 STRING2。就像java.lang.String.indexOf(String)。
我想这个问题也可以通过正确转义 SUBSTRING 的内容来解决,但我似乎不知道如何解决。
谢谢你,wb康
STRING1="http://127.0.0.1/"
STRING2="http://127101011/"
SUBSTRING="127.0.0.1"
for string in "$STRING1" "$STRING2"
do
case "$string" in
(*$SUBSTRING*) echo "$string matches";;
(*) echo "$string does not match";;
esac
done
Run Code Online (Sandbox Code Playgroud)
Korn shell 和 Bash 中的' (*)' 符号;case它在原始的 Bourne shell 中不起作用 - 不需要前导 ' ('。
或者,expr可以使用该命令 - 这是另一个经典(和 POSIX)命令,可能因更现代 shell 中的某些功能而过时。
| 归档时间: |
|
| 查看次数: |
6069 次 |
| 最近记录: |