Ubuntu下,grep的用法
grep(Global search Regular Expression and Print out the line)是一种强大的文本搜索工具,
它能使用正则表达式搜索文本,并把匹配的行打印出来。
Unix的grep家族还包括egrep(Ext)和fgrep(Fixed)。
grep使用的正则表达式元字符:
| 元字符 | 功能 | 示例 | 匹配对象 |
|---|---|---|---|
| ^ | 行首定位符 | ‘^simaopig%’ | 匹配所有以simaopig开头的行 |
| $ | 行尾定位符 | ‘simaopig$’ | 匹配所有以simaopig结尾的行 |
| . | 匹配任意一个字符 | ‘s.m’ | 匹配包含一个s字符,后面跟一个字符(随意),再跟一个m的行 |
| * | 匹配0或多个前一字符 | ‘s*m’ | 匹配包含零个或多个s字符,后面跟有一个m字符的行 |
| [] | 匹配一组字符中的任意一个 | ‘[Ss]imaopig’ | 匹配simaopig,或者Simaopig |
| [^] | 匹配不在指定字符组内的字符 | ‘[^a-z]imaopig’ | 匹配不包含在a-z之间的字符后跟着imaopig的行,即所有aimaopig-zimaopig的行都不包含(有点绕) |
| \< | 词首定位符 | ‘\<simaopig’ | 匹配以simaopig为开头的词的行,simaopigabcd也是可以的 |
| \> | 词尾定位符 | ‘simaopig\>’ | 匹配以simaopig为结尾的词的行,abcdsimaopig也是可以的 |
| .. | 标记匹配的字符 | ‘simaopig's blog’ | 标记寄存器里的一段字符,该寄存器被记作1号寄存器。以后引用这段字符时,可以使用\1来重复该模式。9个标签中最左边的是第一号。例如,模式simaopig被保存在1号寄存器里,之后用\1来引用它。 |
| x\{m\}或x\{m,\}或x\{m,n\} | 字符x的重复出现 | ‘s\{5\}’,'s\{5,\}’,'s\{5,10\}’ | 匹配连续出现5个s、至少5个s或5到10个s的行 |
grep的选项:
| 选项 | 功能 |
|---|---|
| -b | 在每一行前面加上其所在的块号,根据上下文定位磁盘块时可能会用到 |
| -c | 显示匹配到的行的数目,而不是显示行的内容 |
| -h | 不显示文件名 |
| -i | 比较字符时忽略大小写的区别 |
| -l(小写的字母L) | 只列出匹配行所在文件的文件名(每个文件名只列一次),文件名之间用换行符分隔 |
| -n | 在每一行前面加上它在文件中的相对行号 |
| -s | 无声操作,即只显示报错信息,用于检查退出状态 |
| -v | 反向查找,只显示不匹配的行 |
| -w | 把表达式作为词来查找,就好像它被\<和\>夹着那样。只适用于grep(并非所有版本的grep都支持这一功能,譬如,SCO UNIX就不支持) |
更多参见:
grep 正则表达式及选项以及注意
grep用法详解:grep与正则表达式
原文:http://blog.csdn.net/gaojinshan/article/details/9379957
Ubuntu下,grep的用法的更多相关文章
- ubuntu下的fdisk用法
Linux下的fdisk功能是极其强大的,用它可以划分出最复杂的分区,下面简要介绍一下它的用法: 对 于IDE硬盘,每块盘有一个设备名:对应于主板的四个IDE接口,设备名依次为:/dev/hda,/d ...
- Ubuntu 14.10 下grep命令详解
简介 grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它 ...
- 转:关于rename命令ubuntu下的用法
下面是我的遭遇:上午想批量改几个文件的名字,觉得mv在批量方面不够方便,百度到了rename这个命令,原谅我吧,我总是在百度不到结果时才去看google,以后还是少去百度的好国内很多贴子都在说linu ...
- Ubuntu下crontab命令的用法
cron是一个Linux下的后台进程,用来定期的执行一些任务.因为我用的是Ubuntu,所以这篇文章中的所有命令也只能保证在Ubuntu下有效,但其他系统应该也差不多. 想要让cron执行你指定的任务 ...
- 烂泥:ubuntu下配置msmtp+mutt发送邮件
本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我的微信ilanniweb. 本文主要介绍如何在Linux下使用msmtp+mutt发送邮件,当然Linux下发送邮 ...
- ubuntu下minicom和USB转串口(转)
ubuntu下minicom和USB转串口(转) minicom是linux下串口通信的软件,它的使用完全依靠键盘的操作,虽然没有“超级终端”那么易用,但是使用习惯之后读者将会体会到它的高效与便利 ...
- Fedora和Ubuntu下安装OpenGL开发环境配置
Fedora下OpenGl开发环境配置 开发OpenGL工程需要3个库文件和对应的头文件: libglut.so,libGLU.so,libGL.so, gl.h ,glu.h, glut.h 这些库 ...
- 【转】 Ubuntu下配置USB转串口及串口工具配置--不错
原文网址:http://blog.csdn.net/dreambegin/article/details/6985028 注意:默认情况下ubuntu已经安装了USB转串口驱动(pl2303).我的是 ...
- 搭建Ubuntu下c/c++编译环境【转】
1. 安装Ubuntu. 2. 安装gcc 方法一: sudo apt-get install build-essential 安装完了可以执行 gcc--version的 ...
- 2010-01-20 12:09 ubuntu下minicom的安装及使用
转http://hi.baidu.com/npugtawqdnbgqrq/item/106f805409b42813db163527 ubuntu下minicom的安装及使用 安装: sudo apt ...
随机推荐
- nightwatch API
API Nightwatch的API分为四个部分 1.Expect 在browser实例上以.expect.element开头的BDD(行为驱动测试)风格的接口,0.7及以上版本nightwatch可 ...
- Java后台代码调用Spring的@Service Bean的方式
比如:在我的project中有一个类CompassIndexOperation,以: @Service("CompassIndexOperation") @Transactiona ...
- sublime 插件(持续更新)
sublime text 3创建新文件插件-AdvanceNewFile 这里要记录sublime text 3 在创建新文件时安装的插件–AdvanceNewFile ST本来自带的创建新文件的快捷 ...
- Atitit.5gl 第五代语言编程语言 PROLOG教程 人工智能语言的标准 与实现
Atitit.5gl 第五代语言编程语言 PROLOG教程 人工智能语言的标准 与实现 1. 第五代语言就是自然语言又被称为知识库语言或人工智能语言,1 2. 人工智能语言特点2 2.1. 试探法2 ...
- gulp配置,实例演示
项目完成后的目录 我们所需要的插件为:gulp-minify-css gulp-concat gulp-uglify gulp-rename del 如下图所示,完成后的项目目录结构: 附加,获取pa ...
- CAN协议学习(一)协议介绍
一.简介 CAN 是 Controller Area Network 的缩写(以下称为 CAN),是 ISO 国际标准化的串行通信协议. 在当前的汽车产业中,出于对安全性.舒适性.方便性.低公害.低成 ...
- [译]GLUT教程 - 键盘
Lighthouse3d.com >> GLUT Tutorial >> Input >> Keyboard GLUT可以让应用程序自动监测键盘输入,包括普通按键和 ...
- BFS 和 DFS
DFS用到递归,BFS要用到一个辅助队列 #include "stdafx.h" #include<iostream> #include<vector> # ...
- Dijkstra 算法——计算有权最短路径(边有权值)
[0]README 0.1) 本文总结于 数据结构与算法分析, 源代码均为原创, 旨在理解 Dijkstra 的思想并用源代码加以实现: 0.2)最短路径算法的基础知识,参见 http://blog. ...
- DevExpress控件显示前弹出到期时间解决办法
方法是,删除Properties下的license.licx文件,重新生成即可.