grep的用法
grep的用法首先创建我们练习grep命令时需要用到的demo文件demo_file。
- $ cat demo_file
- THIS LINE IS THE 1ST UPPER CASE LINE IN THIS FILE.
- this line is the 1st lower case line in this file.
- This Line Has All Its First Character Of The Word With Upper Case.
- Two lines above this line is empty.
- And this is the last line.
1.从单个文件中搜索指定的字串
grep的基础用法是如下例的从指定的文件中搜索特定的字串。
语法:
- grep "literal_string" filename
- $ grep "this" demo_file
- this line is the 1st lower case line in this file.
- Two lines above this line is empty.
- And this is the last line.
2. 在多个文件中检索指定的字串语法:
- grep "string" FILE_PATTERN
先拷贝demo_file为demo_file1。
grep的结果在符合条件的行前将包括文件名。
当文件名包含元字符时,linux shell会将匹配的所有文件作为输入到grep中去。
- $ cp demo_file demo_file1
- $ grep "this" demo_*
- demo_file:this line is the 1st lower case line in this file.
- demo_file:Two lines above this line is empty.
- demo_file:And this is the last line.
- demo_file1:this line is the 1st lower case line in this file.
- demo_file1:Two lines above this line is empty.
- demo_file1:And this is the last line.
3. 用 grep -i 进行大小写无关的搜索语法:
- grep -i "string" FILE
也是一个基本用法,
对搜索的字串忽略大小写,因此下例中匹配“the”, “THE” and “The”。
- $ grep -i "the" demo_file
- THIS LINE IS THE 1ST UPPER CASE LINE IN THIS FILE.
- this line is the 1st lower case line in this file.
- This Line Has All Its First Character Of The Word With Upper Case.
- And this is the last line.
4. 使用用正则表达式语法:
- grep "REGEX" filename
如果你能有效地利用正则表达式,这是个很有用的特点。
在下面的例子中,搜索全部以“lines”开始以“empty”结束的字串,
如搜索“lines[之间任意字]empty” ,并且忽略大小写。
- $ grep -i "lines.*empty" demo_file
- Two lines above this line is empty.
正则表达式遵循的几个重复的操作
- ? 最多匹配一次
- * 匹配零次或者任意多次
- + 匹配一次以上
- {n} 匹配n次
- {n,} 最少匹配n次
- {,m} 最多匹配m次
- {n,m} 匹配n到m次
5. 用grep -w搜索整个词,而不是词中的部分字串
使用-w选项搜索一个单词,并且避免搜索到词中的部分字串。
下例搜索"is"。
如果不加-w选项,将显示“is”, “his”, “this” 等所有包含“is”的行。
- $ grep -i "is" demo_file
- THIS LINE IS THE 1ST UPPER CASE LINE IN THIS FILE.
- this line is the 1st lower case line in this file.
- This Line Has All Its First Character Of The Word With Upper Case.
- Two lines above this line is empty.
- And this is the last line.
下例使用了-w选项,
请注意结果中不包含
“This Line Has All Its First Character Of The Word With Upper Case”,
虽然 “This”中包含“is”。
- $ grep -iw "is" demo_file
- THIS LINE IS THE 1ST UPPER CASE LINE IN THIS FILE.
- this line is the 1st lower case line in this file.
- Two lines above this line is empty.
- And this is the last line.
6. 使用grep -A, -B and -C显示之前、之后、前后的几行
当使用grep搜索大文件时,
显示匹配行附近的多行数据是一个很有用的功能。
创建如下文件
- $ cat demo_text
- 4. Vim Word Navigation
- You may want to do several navigation in relation to the words, such as:
- * e - go to the end of the current word.
- * E - go to the end of the current WORD.
- * b - go to the previous (before) word.
- * B - go to the previous (before) WORD.
- * w - go to the next word.
- * W - go to the next WORD.
- WORD - WORD consists of a sequence of non-blank characters, separated with white space.
- word - word consists of a sequence of letters, digits and underscores.
- Example to show the difference between WORD and word
- * 192.168.1.1 - single WORD
- * 192.168.1.1 - seven words.
6.1 显示匹配行之后的N行
-A
语法:
- grep -A "string" FILENAME
下例显示匹配行和之后的3行数据
- $ grep -A 3 -i "example" demo_text
- Example to show the difference between WORD and word
- * 192.168.1.1 - single WORD
- * 192.168.1.1 - seven words.
6.2显示匹配行之前的N行
-B
语法:
- grep -B "string" FILENAME
下例显示匹配行和之前的2行数据
- $ grep -B 2 "single WORD" demo_text
- Example to show the difference between WORD and word
- * 192.168.1.1 - single WORD
6.3显示匹配行前后的N行
-C
显示之前的n行,之后的n行数据.
- $ grep -C 2 "Example" demo_text
- word - word consists of a sequence of letters, digits and underscores.
- Example to show the difference between WORD and word
- * 192.168.1.1 - single WORD
7.通过GREP_OPTIONS高亮显示搜索的字串
如果你希望搜索的字串高亮显示在结果中,可以试用以下的办法。
通过修改GREP_OPTIONS对搜索字串高亮显示。
- $ export GREP_OPTIONS='--color=auto' GREP_COLOR='100;8'
- $ grep this demo_file
- this line is the 1st lower case line in this file.
- Two lines above this line is empty.
- And this is the last line.
8. 用grep -r递归搜索全部的文件
如果想查找当前目前以及其子目录的全部文件时,
可以使用 -r 选项。
如下例
- $ grep -r "ramesh" *
9. 使用grep -v进行不匹配
可以使用-v选项显示不匹配搜索字串的行。
下例显示demo_text文件中不包含“go”的行
- $ grep -v "go" demo_text
- 4. Vim Word Navigation
- You may want to do several navigation in relation to the words, such as:
- WORD - WORD consists of a sequence of non-blank characters, separated with white space.
- word - word consists of a sequence of letters, digits and underscores.
- Example to show the difference between WORD and word
- * 192.168.1.1 - single WORD
- * 192.168.1.1 - seven words.
10. 显示不匹配全部模式的行语法:
- grep -v -e "pattern" -e "pattern"
创建如下例子文件
- $ cat test-file.txt
- a
- b
- c
- d
- $ grep -v -e "a" -e "b" -e "c" test-file.txt
- d
11.用grep -c 统计匹配的行数语法:
- grep -c "pattern" filename
- $ grep -c "go" demo_text
- 6
统计不匹配的行数
- $ grep -v -c this demo_file
- 4
12. 用grep -l 只显示文件名
- $ grep -l this demo_*
- demo_file
- demo_file1
13. 只显示匹配的字串
缺省显示匹配字串的所在行,
可以使用-o选项只显示匹配的字串。
这项功能当使用正则表达式时比较有用处。
- $ grep -o "is.*line" demo_file
- is line is the 1st lower case line
- is line
- is is the last line
14. 显示匹配的位置语法:
- grep -o -b "pattern" file
- $ cat temp-file.txt
- 12345
- 12345
- $ grep -o -b "3" temp-file.txt
- 0:3
- 6:3
注意: 以上输出显示的不是行内的位置,而是整个文件中的字节byte位置
15. 用 grep -n 在输出时显示行号
行号从1开始
- $ grep -n "go" demo_text
- 5: * e - go to the end of the current word.
- 6: * E - go to the end of the current WORD.
- 7: * b - go to the previous (before) word.
- 8: * B - go to the previous (before) WORD.
- 9: * w - go to the next word.
- 10: * W - go to the next WORD.
原文地址:http://www.cnblogs.com/xuxm2007/archive/2011/01/10/1932288.html
grep的用法的更多相关文章
- grep常用用法
grep常用用法 [root@www ~]# grep [-acinv] [--color=auto] '搜寻字符串' filename 选项与参数: -a :将 binary 文件以 text 文件 ...
- linux grep的用法
linux grep的用法<pre>[root@iZ23uewresmZ ~]# cat /home/ceshis.txtb124230 b034325 a081016 m7187998 ...
- 文本三剑客之grep的用法
第1章 正则表达式 1.1 正则表达式的介绍 正则是用来过滤文件内容 为处理大量文本|字符串而定义的一套规则和方法. ...
- linux中grep的用法
http://www.9usb.net/200902/linux-grep.html http://blog.51yip.com/linux/1008.html http://blog.csdn.ne ...
- grep精确匹配搜索某个单词的用法 (附: grep高效用法小结))
grep(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正 ...
- Ubuntu下,grep的用法
grep(Global search Regular Expression and Print out the line)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来.U ...
- grep命令用法
linux中grep命令的用法 作为linux中最为常用的三大文本(awk,sed,grep)处理工具之一,掌握好其用法是很有必要的. 首先谈一下grep命令的常用格式为:grep [选项] ”模 ...
- grep的用法,小技巧,模板中含有\t时:grep -P "^\t" file
linux中grep和find的用法区别 本文章详细的介绍了关于在linux中的grep和find两个命令的用法介绍,以及后面总结了它们两年用法区别哦. 先我们来介绍一下关于grep用法和一些小注意事 ...
- <三剑客> 老三:grep命令用法
grep(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正 ...
随机推荐
- Linux下c++中的atoi、atol、atoll、atof函数调用实例
本文中调用的四个函数如下: atoi函数:将字符串转化为int类型变量 atol函数:将字符串转化为long类型变量 atoll函数:将字符串转化为long long类型变量 atof函数:将字符串转 ...
- #ifdef __cplusplus extern "C" { #endif
1.在好多程序中我们会遇到下面代码段 #ifdef __cplusplus extern "C" { #endif //c语法代码段 #ifdef __ ...
- for循环嵌套的穷举,迭代,以及while的使用和for的转换
for循环的穷举.解决多种方法做种组合问题,代替人脑的大量计算 穷举例子 迭代,寻找一定的规律.然后利用循环找出结果 迭代举例 以五个小朋友3岁,之前的每一个小朋友都比序号在后的小朋友大两岁.温,第一 ...
- 电脑能上网,手机连上wifi不能上网
电脑能上网,手机连上wifi不能上网 ,其实只要把手机的dhcp 改为我们熟悉的就行了 我此处就设置为114.114.114.114
- winform 发邮件
System.Net.Mail.SmtpClient client = new SmtpClient("smtp.163.com"); client.UseDefaultCre ...
- UVA 10254 十八 The Priest Mathematician
The Priest Mathematician Time Limit:3000MS Memory Limit:0KB 64bit IO Format:%lld & %llu ...
- 关于socket tcp 断线重连
这个问题困扰过我几次,都没有来得及研究,今天研究一下. 首先写一个最简易的socket tcp程序,连接成功后再关闭服务器然后再用客户端各种操作看是什么情况 测试表明 (1)客户端已经连接,当服务端关 ...
- [数据结构与算法]队列Queue 的多种实现
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- 部署PDA程序的时候存储不足的解决办法
通常Windows Mobile的存储空间分为程序内存和存储内存,默认都比较小,当程序比较大的时候可能无法正常部署到设备上面,针对此问题可采用如下办法解决:1.通过VS修改,工具--选项--设备--选 ...
- QQ音乐项目(OC版) - 实现细节
QQ 音乐看似简单,但自己手动实现起来,才发现没有那么简单,有好多细节,需要注意. github : https://github.com/keenleung/QQMusic-OC 一.业务逻辑 首先 ...