问号
问号表示字符可以出现0次或者1次,
echo "bt" | gawk '/be?t/{print $0}'
问号也可以和其字符组一起使用
echo "bt" | gawk '/b[ef]?t/{print $0}'
加号
加号类似另一个问号的匹配,加号表示前面的出现一次或者多次,至少出现过一次
echo "bt" | gawk '/b[ef]+t/{print $0}'
echo "bet" | gawk '/b[ef]+t/{print $0}'
花括号
花括号弥补了问号和加号的不足,花括号表示出现的次数或者区间内。
- m:正则表达式准确出现m次。
- m, n:正则表达式至少出现m次,至多n次
echo "bt" | gawk --re-interval '/b[ae]{1,2}t/{print $0}'
echo "bat" | gawk --re-interval '/b[ae]{1,2}t/{print $0}'
echo "bet" | gawk --re-interval '/b[ae]{1,2}t/{print $0}'
echo "beat" | gawk --re-interval '/b[ae]{1,2}t/{print $0}'
echo "beet" | gawk --re-interval '/b[ae]{1,2}t/{print $0}'
管道
管道符号允许你在检查数据流时,用逻辑OR方式指定正则表达式引擎要用的两个或多个模
式。如果任何一个模式匹配了数据流文本,文本就通过测试。如果没有模式匹配,则数据流文本
匹配失败。
echo "The dog is asleep" | gawk '/cat|dog/{print $0}'
echo "The sheep is asleep" | gawk '/cat|dog/{print $0}'