参考grep的man手册,记录grep命令的常用操作。
grep中正则表达式的语法基本与其他地方的正则表达式基本相同。 红字标出的是可能常用的选项。
感觉能经常用到的也就是:
-o
-R
-n
-v
-r选项后可加--include=PATTERN。这东西十分有用,比如想查找函数的原型就用--include=*.h,想查找函数的实现就用--include=*.c。
1:语法
grep [options] PATTERN [FILE...]
grep [options] [-e PATTERN | -f FILE] [FILE...]
2:选项
-A NUM: 输出匹配行的后NUM行。
-a 将二进制文件当成文本文件处理
-B NUM: 输出匹配行的前NUM行。
-C NUM: 输出匹配行的前NUM行和后NUM行
-b 输出字节偏移量
-c 输出匹配的行数
-e PATTERN 使用PATTERN为模式
-E 将PATTERN解释为扩展的正则表达式
-F
-P 将PATTERN作为perl正则表达式解释
-f FILE 从指定文件中读取PATTERN
-i 忽略大小写
--mmap 用mmap来读取输入
-n 添加行号
-q 安静模式,不输出匹配结果,如果仅需要判断是否有匹配可用该参数
-o 仅返回匹配的部分
-r -R 递归模式,
--include=PATTERN : 仅搜索匹配PATTERN的文件,如grep function * -r --include=*.c
仅搜索.c文件
--exclude=PATTERN :不搜索匹配PATTERN的文件
-v 反转模式,返回不匹配的行
正则表达式:
grep中的正则表达式分为基本的和扩展的,加上-E后使用扩展的正则表达式语法。
[]表达式:匹配任何在[]中出现的字符,若包含^,则匹配没有在[]中出现的字符。
例如[0123456789]匹配任何单个数字,也可用[0-9]来表示这些数字
常用类别
[:alnum:], [:alpha:], [:cntrl:], [:digit:], [:graph:], [:lower:], [:print:],
[:punct:], [:space:], [:upper:], [:xdigit:]
. : 匹配任何单个字符
^ : 匹配行的开头 grep ^one file
$ : 匹配行的末尾 grep one$ file
\< : 匹配单词的开头
\> : 匹配单词的结尾
? :前一个item是可选的,并且最多匹配一次
* :前一个item可匹配0次或多次
+ :前一个item可匹配1次或多次
{n} :前一个item匹配n次
{n,} :前一个item匹配>=n次
{n,m} :前一个item匹配最少n次,最多m次
| :匹配两个正则表达式中的任意一个
在基本的正则表达式中?, +, {, |, (, )没有特殊意义,要使用它们的特定意义需在前面加上\
阅读(1251) | 评论(0) | 转发(0) |