Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1212852
  • 博文数量: 261
  • 博客积分: 4196
  • 博客等级: 上校
  • 技术积分: 3410
  • 用 户 组: 普通用户
  • 注册时间: 2012-02-17 17:05
文章分类

全部博文(261)

文章存档

2018年(1)

2017年(22)

2016年(2)

2015年(8)

2014年(27)

2013年(40)

2012年(161)

分类: LINUX

2014-08-21 11:29:12

原文:http://www.cnblogs.com/kuyuecs/archive/2012/07/13/2589988.html

用 grep -n 在输出时显示行号
用grep -c 统计匹配的行数
用grep -r递归搜索全部的文件
用grep -w搜索整个词,而不是词中的部分字串
用 grep -i 进行大小写无关的搜索
 


使用grep -v进行不匹配
可以使用-v选项显示不匹配搜索字串的行。下例显示demo_text文件中不包含“go”的行
$ grep -v "go" demo_text




 显示匹配行之后的N行 -A
语法:grep -A  "string" FILENAME
下例显示匹配行和之后的3行数据
$ grep -A 3 -i "example" demo_text


显示匹配行之前的N行 -B
语法:grep -B  "string" FILENAME
下例显示匹配行和之前的2行数据
$ grep -B 2 "single WORD" demo_text


显示匹配行前后的N行
-C 显示之前的n行,之后的n行数据.
$ grep -C 2 "Example" demo_text




显示匹配多个字符的行
语法:grep -e "pattern" -e "pattern"
创建如下例子文件
$ cat test-file.txt
a
b
c
d
$ grep-e "a" -e "b" test-file.txt
a
b








使用用正则表达式
语法: grep "REGEX" filename
如果你能有效地利用正则表达式,这是个很有用的特点。在下面的例子中,搜索全部以“lines”开始以“empty”结束的字串,如搜索“lines[之间任意字]empty” ,并且忽略大小写。
$ grep -i "lines.*empty" demo_file
正则表达式遵循的几个重复的操作
? 最多匹配一次
* 匹配零次或者任意多次
+ 匹配一次以上
{n} 匹配n次
{n,} 最少匹配n次
{,m} 最多匹配m次
{n,m} 匹配n到m次




通过GREP_OPTIONS高亮显示搜索的字串
如果你希望搜索的字串高亮显示在结果中,可以试用以下的办法。
通过修改GREP_OPTIONS对搜索字串高亮显示。
$ export GREP_OPTIONS='--color=auto' GREP_COLOR='100;8'
$ grep this demo_file




只显示匹配的字串
缺省显示匹配字串的所在行,可以使用-o选项只显示匹配的字串。这项功能当使用正则表达式时比较有用处。
$ grep -o "is.*line" demo_file
is line is the 1st lower case line
is line
is is the last line




显示匹配的位置
语法:grep -o -b "pattern" file
$ cat temp-file.txt
12345
12345
$ grep -o -b "3" temp-file.txt
0:3
6:3
注意: 以上输出显示的不是行内的位置,而是整个文件中的字节byte位置

阅读(880) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~