shell脚本经常要处理大量数据如日志等,有些内容需要用到正则表达式,正如之前的sed和gawk,里面经常使用正则表达式。正则表达式要通过正则表达式引擎实现,负责对表达式的模式进行解释。当前有两种引擎,分别是基础正则表达式引擎(BRE)和扩展正则表达式引擎(ERE)。
1 纯文本正则表达式匹配
之前的sed和gawk中已经用到过纯文本的正则表达式,纯文本正则表达式中是没有特殊字符的,比如输入:
echo 'wu lin wai zhuan'|sed -n '/wai/p'
运行后结果为:
wu lin wai zhuan
再输入:
echo 'wu lin wai zhuan'|gawk '/lin/{print $0}'
运行后结果为:
wu lin wai zhuan
如果字符串本身中有空格的话,同样可以添加空格作为字符串的一部分,输入:
echo 'wu lin wai zhuan'|sed -n '/ai zh/p'
运行后结果为:
wu lin wai zhuan