正则表达式与基础Shell脚本编程
1. 正则表达式与模式匹配
正则表达式在文本处理中有着重要的作用,它可以帮助我们更精确地匹配和处理文本。下面介绍一个用于测试字符串与模式匹配情况的脚本:
do
if expr "$string" : ".*$pattern" >/dev/null 2>&1; then
echo "regex: $string matched $pattern."
else
echo "regex: $string didn't match $pattern."
fi
case $string in
$pattern) echo "shell: $string matched $pattern.";;
*) echo "shell: $string didn't match $pattern.";;
esac
done
使用这个脚本的步骤如下:
1. 将脚本保存到一个文件中。
2. 给文件添加可执行权限,命令为 chmod +x filename
。
3. 运行脚本时至少提供两个参数,第一个参数是要测试的模式,后续参数是要与模式进行匹配的字符串。例如: $ ./patcheck '*' aardvark
。
需要注意的是,该脚本不会自动对正则表达式进行锚定,甚至会抑制 expr
默认的左侧锚定。如果要进行锚定正则表达式的比较,可将 expr
行修改为: </