1.特殊字符
转义用\
匹配行首^
匹配行尾 $
删除文本中空白行:sed '/^$/d' sed_data.txt
匹配一个字符:使用.
字符数组:将指定的字符放在中括号中
echo "Yes" | sed -n '/[Yy]es/p'
echo "yes" | sed -n '/[Yy]es/p'
echo "I'm getting too fat." |sed -n '/[a-ch-m]/p' 可以由多个区间组成
2.特殊匹配
3.量词
(1)* :匹配0次或多次
(2)?:匹配0次或一次 gawk可用 sed不支持
(3)+ :匹配1 次 或多次
(4){n,m}:限定匹配
(5)|:来表示匹配中的或
4.句话表达式
使用()括起来的可以当作一个字符使用量词
echo "Sat" |gawk '/Sat(urday)?/{print $0}' 匹配urday 0次或1次
5.例子
电话号码:
echo "(123)456-7890" | gawk '/^\(?[0-9]{3}\)?[-. ]?[0-9]{3}[-.]{1}[0-9]{4}/{print $0}'
echo "(123) 456-7890" |gawk '/^\(?[0-9]{3}\)?[-. ]?[0-9]{3}[-.]{1}[0-9]{4}/{print $0}'
echo "123-456-7890" |gawk '/^\(?[0-9]{3}\)?[-. ]?[0-9]{3}(-|.)[0-9]{4}/{print $0}'
echo "123.456.7890" |gawk '/^\(?[0-9]{3}\)?[-. ]?[0-9]{3}[-.]{1}[0-9]{4}/{print $0}'