如何检查字符串是否遵循特定模式?Shell脚本:如何检查字符串是否遵循特定模式?
例如,我有$ var存储“hello.txt”,我想匹配的模式是“^(。+).txt $”(即任何具有“[任何文本] .txt “
如何检查字符串是否遵循特定模式?Shell脚本:如何检查字符串是否遵循特定模式?
例如,我有$ var存储“hello.txt”,我想匹配的模式是“^(。+).txt $”(即任何具有“[任何文本] .txt “
使用bash内建=〜你可以这样做:
if [[ "aaaa" =~ a+ ]]
then
echo "ok"
else
echo "no"
fi
您还可以使用shell glob模式:
if [[ "$var" == *.txt ]]; then ...
case "$var" in
*.txt) do something ;;
*) do something else ;;
esac
桜さん,その绿の印ここに移って下さい。(> _〇) – Kaz 2012-03-16 21:45:12
我可以使用shell的内置 '=〜' – Sakura 2012-03-15 09:06:48
绝对?更好 – kappa 2012-03-15 09:19:46
这是完全愚蠢的,因为那个是不会调用正则表达式的,并且可以用POSIX描述的可移植shell语言轻松完成,而不用'bash'扩展。 – Kaz 2012-03-16 21:51:38