linux命令行与shell脚本大全_第十九章_正则表达式

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}'







猜你喜欢

转载自blog.csdn.net/nash885/article/details/69917965