1:基础正则表达式 grep 正则表达式
(正则表达式是匹配字符串使用的,邮箱手机号等等)google
(1)* 前一个字符匹配 0 次或任意屡次。字符串
示例:基础
grep "a*" 1.txt 没有任何意义 *能够有0次至关于所有匹配扩展
grep "aa*" 1.txt 匹配至少包含一个a的字符串grep
grep "aaaaa*" 至少会匹配包含4个a的字符文件
(2). 匹配除了换行符外任意一个字符。co
示例:字符
grep "." ./* 匹配当前文件夹的全部字符 .表示任意一个字符数字
grep "a..b" 1.txt 匹配在a,b之间至少包含两个字符的字符串
(3)
^ 匹配行首。例如:^hello 会匹配以 hello 开头的行。
$ 匹配行尾。例如:hello&会匹配以 hello 结尾的行。
示例:
grep "^M" 1.txt 查找以M开头的字符。
grep "\.$" 1.txt 查找以.结尾的字符串 \.须要进行转义。
而“$”则会匹配空白行:
示例:grep "^$" 1.txt ^$ 行首行尾都是空
grep -v "^$" 1.txt 取反匹配非空白行
(4)
[] 匹配中括号中指定的任意一个字符,只匹配一个字符。
例如:
[0-9] 匹配任意一位数字,
[a-z][0-9]匹配小写字和一位数字构成的两位字符。
grep "[a-z][0-9]" ./*
(1) [^]
匹配除中括号的字符之外的任意一个字符。
例如: [^0-9] 匹配任意 一位非数字字符,[^a-z] 表示任意一位非小写字母。
(5)\ 转义符。用于取消讲特殊符号的含义取消。
(6)
\{n\}表示其前面的字符刚好出现 n 次。例如:[0-9]\{4\} 匹配 4 位数字,[1][3-8][0-9]\{9\} 匹配手机号码。
\{n,\}表示其前面的字符出现不小于 n 次。例如: [0-9]\{2,\} 表示两位及以上的数字。
\{n,m\} 表示其前面的字符至少出现n次,最多出现m次。例如: [a-z]\{6,8\}匹配 6 到 8 位的小写字母。
示例:
grep "a\{3\}" 1.txt 匹配包含三个连续a的字符。
grep "[su]a\{3\}[il]" 1.txt
grep "a\{3,4\}" 1.txt 至少出现3个连续的a,最多4个连续的a.
扩展正则表达式 grep –E
+ 字符匹配 1 次或任意屡次。
示例: o+gle”会匹配“gogle”、“google”或“gooogle”,固然如
果“o”有更多个,也能匹配。
? 前一个字符匹配 0 次或 1 次。
例如: u?r”能够匹配“colour”或“color”。
| “was|his”会匹配既包含“was”的行,也匹配包含“his”的行。
()配其总体为一个字符,即模式单元。能够理解为由多个单个字符组成的大字符。
如“(dog)+”会匹配“dog”、“dogdog”、“dogdogdog”等,由于
被()包含的字符会当成一个总体。但“hello (world|earth)”
会匹配“hello world”及“hello earth”。