首页 > 代码库 > grep与正则表达式
grep与正则表达式
1. grep 基本语法
grep的作用就是搜索,与find不同的是:
find用于搜索目录,文件名
grep最根本上是用于检索文件内容,字符串等
grep [OPTIONS] PATTERN [FILE...] grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...]
OPTIONS:(最常用的)
-a 以文本文件方式搜索
-c 计算找到的符合行的次数
-i 忽略大小写
-n 顺便输出行号
-v 反向选择,即找 没有搜索字符串的行
PATTERN:
(1) 要搜索的字符串
(2) 基本正则表达式
(3) 扩展正则表达式(需要 加 -E 参数)
2. 基本正则表达式
2.1 选择[]
[abc] 匹配字符串abc的中任何一个字符。
可以使用范围-
[a-z]:匹配所有小写英文字符
[A-Z]:匹配所有大写英文字符
[0-9]:匹配所有数字
[a-zA-Z]:匹配所有英文字符
2.2 . *
bash中的.*与正则表达式有着不同的意义.
正则表达式:
. : 表示任意一个字符
* : 表示有0个或多个 某个字符, 例如 gx*可以匹配g的后面有一个或多个x字符: g, gx, gxx, gxxxx等,
2.3 行首行尾^ $
^ex :匹配ex出现在行首
tion$:匹配tion出现在行尾
2.4 次数{}
{n} | n是一个非负整数。匹配确定的n次。 |
---|---|
{n,} | n是一个非负整数。至少匹配n次。 |
{n,m} | m和n均为非负整数,其中n<=m。最少匹配n次且最多匹配m次。 |
注意,由于{ }在SHELL中有特殊意义,因此作为正则表达式用的时候要用\转义一下。
3. 扩展正则表达式
主要在基本正则表达式的增加了或| 与() 功能3.1 或 |
PATTERN1 | PATTERN2
实现匹配PATTERN1或者 PATTERN2
从中也可以看出‘|‘的优先级高于其他字符(当然小括号除外)
例如: 匹配字符串string或者char的字符串
grep -E 'string|char'
匹配以开头的字符串string或者char的字符串
grep -E '^string|^char'
3.2 () 小括号
和你小学学到的小括号的功能一样啦.
匹配以开头的字符串string或者char的字符串
grep -E '^(string|char)'
4. 正则表达式
关于正则表达式的其他内容参见:
正则表达式
grep与正则表达式
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。