- 浏览: 1340945 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (732)
- Java_about (146)
- Spring_Hibernate_Struts_OpenSource (27)
- linux_unix (62)
- life_sth (22)
- js_css_html_xml_nodejs (69)
- design_pattens (1)
- Perl (8)
- php_ecshop (4)
- DB_Mysql_Oracle_Informix_SqlServer (43)
- JSTL (8)
- Testing_自动化测试 (42)
- DB_ID_UUID (4)
- SEM_SEO (1)
- english_study_improvement (4)
- SVN_Git (9)
- WebService_SOA_CloudComputing (3)
- E-Commerce (1)
- Lucene_Solr (7)
- others (2)
- Regex (2)
- tomcat_jetty (8)
- zeroc-ice (1)
- java_excel (5)
- ant_maven_gradle (5)
- Unity_VR_AR_C# (2)
- jmeter (1)
- XPath_dom4j (1)
- Ruby_and_Rails (68)
- write_a_rails (17)
- manage_and_team (1)
- getting_real (1)
- ubuntu (20)
- git_and_git_flow (7)
- TODO (1)
- PM_design (2)
- Python_and_Django (8)
- NoSql_mongo_redis (24)
- C/C++ (3)
- vi_vim_gvim (0)
- c#_.Net_windows编程_dll (10)
- Php_and_Yii (9)
- Android_IOS (31)
- Mysql (5)
- sa_运维_network_硬件 (37)
- lua (2)
- c_cpp_VisualStudio (21)
- 硬件-RM-Arduino (6)
最新评论
-
shenkun58:
...
NoClassDefFoundError: Could not initialize springframework.BeanCreationException -
liaojia1:
正解,感谢
NoClassDefFoundError: Could not initialize springframework.BeanCreationException -
flingfox63:
谢谢分享,电脑上有IPV6,导致了Guard启动不了……
ruby错误解决: Address family not supported by protocol - connect(2) -
c39274936:
s = "hello_world_ruby" ...
驼峰格式和下划线格式转换_translation between camel and snake format -
yfj300:
学习了学习了学习了学习了
硬盘基本知识(磁道、扇区、柱面、磁头数、簇、MBR、DBR)
Tip:
请把下面的内容作为参考,而不是标准和绝对。
例如,我此时使用的redhat3的man grep中有这么一小段,或许可以让你看出,不同的OS版本实现上或默认设置上有些差异[确实很不舒服]
Within a bracket expression, a range expression consists of two charac-
ters separated by a hyphen. It matches any single character that sorts
between the two characters, inclusive, using the locale’s collating
sequence and character set. For example, in the default C locale,
[a-d] is equivalent to [abcd]. Many locales sort characters in dictio-
nary order, and in these locales [a-d] is typically not equivalent to
[abcd]; it might be equivalent to [aBbCcDd], for example. To obtain
the traditional interpretation of bracket expressions, you can use the
C locale by setting the LC_ALL environment variable to the value C.
http://soft.zdnet.com.cn/software_zone/2007/1014/553088.shtml 稍稍改动 1. grep简介
grep (global search regular expression(RE) and print out the
line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。Unix的grep家族包
括grep、egrep和fgrep。egrep和fgrep的命令
只跟grep有很小不同。egrep是grep的扩展,支持更多的re元字符, fgrep就是fixed grep或fast grep,它们把所有的字母都看作单词,也就是说,正则表达式中的元字符表示回其自身的字面意义,不再特殊。Linux
使用GNU版本的grep。它功能更强,可以通过-G、-E、-F命令
行选项来使用egrep和fgrep的功能。
grep的工作方式是这样的,它在一个或多个文件中搜索字符串模板。如果模板包括空格,则必须被引用,模板后的所有字符串被看作文件名。搜索的结果被送到屏幕,不影响原文件内容。
grep可用于shell脚本,因为grep通过返回一个状态值来说明搜索的状态,如果模板搜索成功,则返回0,如果搜索不成功,则返回1,如果搜索的文件不存在,则返回2。我们利用这些返回值就可进行一些自动化的文本处理工作。
2. grep正则表达式元字符集(基本集)
^
锚定行的开始 如:'^grep'匹配所有以grep开头的行。
$
锚定行的结束 如:'grep$'匹配所有以grep结尾的行。
匹配一个非换行符的字符 如:'gr.p'匹配gr后接一个任意字符,然后是p。
*
匹配零个或多个先前字符 如:'*grep'匹配所有一个或多个空格后紧跟grep的行。 .*一起用代表任意字符。
[]
匹配一个指定范围内的字符,如'[Gg]rep'匹配Grep和grep。
[^]
匹配一个不在指定范围内的字符,如:'[^A-FH-Z]rep'匹配不包含A-R和T-Z的一个字母开头,紧跟rep的行。
(..)
标记匹配字符,如'(love)',love被标记为1。
<
锚定单词的开始,如:' >
锚定单词的结束,如'grep>'匹配包含以grep结尾的单词的行。
x
重复字符x,m次,如:'0'匹配包含5个o的行。
x
重复字符x,至少m次,如:'o'匹配至少有5个o的行。
x
重复字符x,至少m次,不多于n次,如:'o'匹配5--10个o的行。
w
匹配文字和数字字符,也就是[A-Za-z0-9],如:'Gw*p'匹配以G后跟零个或多个文字或数字字符,然后是p。
W
w的反置形式,匹配一个或多个非单词字符,如点号句号等。
b
单词锁定符,如: 'bgrepb'只匹配grep。
3. 用于egrep和 grep -E的元字符扩展集
+
匹配一个或多个先前的字符。如:'[a-z]+able',匹配一个或多个小写字母后跟able的串,如loveable,enable,disable等。
?
匹配零个或多个先前的字符。如:'gr?p'匹配gr后跟一个或没有字符,然后是p的行。
a|b|c
匹配a或b或c。如:grep|sed匹配grep或sed
()
分组符号,如:love(able|rs)ov+匹配loveable或lovers,匹配一个或多个ov。
x,x,x
作用同x,x,x
4. POSIX字符类
为了在不同国家的字符编码中保持一至,POSIX(The Portable Operating System
Interface)增加了特殊的字符类,如[:alnum:]是A-Za-z0-9的另一个写法。要把它们放到[]号内才能成为正则表达式,如[A-
Za-z0-9]或[[:alnum:]]。在Linux
下的grep除fgrep外,都支持POSIX的字符类。
[:alnum:]
文字数字字符
[:alpha:]
文字字符
[:digit:]
数字字符
[:graph:]
非空字符(非空格、控制字符)
[:lower:]
小写字符
[:cntrl:]
控制字符
[:print:]
非空字符(包括空格)
[:punct:]
标点符号
[:space:]
所有空白字符(新行,空格,制表符)
[:upper:]
大写字符
[:xdigit:]
十六进制数字(0-9,a-f,A-F)
5. Grep命令
选项
-?
同时显示匹配行上下的?行,如:grep -2 pattern filename同时显示匹配行的上下2行。
-b,--byte-offset
打印匹配行前面打印该行所在的块号码。
-c,--count
只打印匹配的行数,不显示匹配的内容。
-f File,--file=File
从文件中提取模板。空文件中包含0个模板,所以什么都不匹配。
-h,--no-filename
当搜索多个文件时,不显示匹配文件名前缀。
-i,--ignore-case
忽略大小写差别。
-q,--quiet
取消显示,只返回退出状态。0则表示找到了匹配的行。
-l,--files-with-matches
打印匹配模板的文件清单。
-L,--files-without-match
打印不匹配模板的文件清单。
-n,--line-number
在匹配的行前面打印行号。
-s,--silent
不显示关于不存在或者无法读取文件的错误信息。
-v,--revert-match
反检索,只显示不匹配的行。
-w,--word-regexp
如果被<和>引用,就把表达式做为一个单词搜索。
-V,--version
显示软件版本信息。
6. 实例
要用好grep这个工具,其实就是要写好正则表达式,所以这里不对grep的所有功能进行实例讲解,只列几个例子,讲解一个正则表达式的写法。
$ ls -l | grep '^a'
通过管道过滤ls -l输出的内容,只显示以a开头的行。
$ grep 'test' d*
显示所有以d开头的文件中包含test的行。
$ grep 'test' aa bb cc
显示在aa,bb,cc文件中匹配test的行。
$ grep '[a-z]\{5\}' aa.txt
显示所有包含每个字符串至少有5个连续小写字符的字符串的行。
$ grep 'w(es)t.*' aa
如果west被匹配,则es就被存储到内存中,并标记为1,然后搜索任意个字符(.*),这些字符后面紧跟着另外一个es(),找到就显示该行。如果用egrep或grep -E,就不用""号进行转义,直接写成'w(es)t.*'就可以了。
发表评论
-
Linux终端复用神器-Tmux使用梳理(程序员适用)
2018-07-06 18:41 658= = = 参考: Linux终 ... -
linux下awk内置函数的使用(split/substr/length)
2018-06-14 20:02 690= = = 【转】linux下awk内置函数的使用(s ... -
awk引用外部变量
2018-06-14 19:54 1263= 对引用的文做了格式修改和字符串修正。 增加了自己的 ... -
Linux下解决高并发socket最大连接数所受的各种限制(解除IO限制)
2018-06-01 10:47 3257== = - from:Linux下解决高并发sock ... -
SSH远程会话管理工具-screen使用教程
2018-04-11 18:08 751= 朝花夕拾:screen。尤其在远程一个黑盒,不能有多 ... -
rpm命令总结-rpm常用命令-rpm安装源后怎么删除-yum安装怎么降低版本
2018-04-10 20:39 1411= = = rpm命令总结 参考:http://ma ... -
.repo文件共存与优先级,.repo文件的修改,https的repo改成http
2018-03-29 17:16 1365= .repo文件共存与优先 ... -
yum是很么?repo文件详解,epel简介,yum源的更换,repo和epel区别
2018-03-29 17:12 2504= yum是很么?repo文件详解,epel简介,yum ... -
centos_官方源、镜像源汇总
2018-03-29 16:34 1302= = 站点版 (一)、企业站 ... -
国内yum源的安装(163,阿里云,epel)
2018-03-29 16:20 984= 国内yum源的安装(163,阿里云,epel) ... -
同步文件:sersync+rsync原理及部署
2017-09-05 19:42 1275= = = 一、为什么要用rsync+sersy ... -
无人值守安装操作系统
2017-07-17 16:47 1234= 无人值守安装操作系统,对运维来说,很节约生命。 1 ... -
Linux系统下常用日志分析工具:Logcheck简介
2017-07-17 16:15 1739= = = from:http://os.51cto ... -
linux下logrotate 配置和理解
2017-07-17 16:09 1005= = = 对于Linux 的系统安全来说,日志文件 ... -
centos 查看版本(转)
2016-12-23 18:58 548centos 查看版本(转) 有以下命令可以查看 ... -
wget下载https文件
2016-12-01 22:27 1697wget --no-check-certifica ... -
利用Linux命令行进行文本按行去重并按重复次数排序
2016-08-26 19:22 837利用Linux命令行进行文本按行去重并按重复次数排序 ht ... -
【Apache ZooKeeper】命令行zkCli.sh使用指南
2016-07-22 20:32 8734from:http://blog.sina.com. ... -
linux nc命令常用用法
2016-07-22 20:26 966from:http://my.oschina.net/ ... -
如何修改Linux命令提示符
2016-07-22 20:16 889无颜色常用:export $PS1="[\u@\h ...
相关推荐
在Linux Shell中,正则表达式常用于grep命令,例如`grep 'pattern' file`用于查找file中包含pattern的行。还可以配合其他命令,如`egrep`(支持扩展正则表达式)、`awk`和`sed`进行更复杂的文本处理。 1. grep命令...
`grep`源自于“global regular expression print”,即全局正则表达式打印,它的主要功能是从输入流(通常是文件或管道)中搜索匹配特定模式的行,并将匹配的行打印出来。对于初学者来说,理解和掌握`grep`命令是...
综上所述,这个压缩包文件合集详细地介绍了Linux环境中如何使用正则表达式进行文本匹配和处理,涵盖了正则表达式的基础知识、sed工具的使用以及grep系列命令的应用。掌握这些内容,将极大地提高你在Linux系统中处理...
- **grep/egrep**:Unix/Linux 下的命令行工具,用于在文件中搜索匹配正则表达式的行。 #### 五、正则表达式的高级主题 对于更深入的学习者来说,还可以探索以下高级主题: - **反向引用**:在正则表达式中使用...
本文将详细介绍 Linux 中的 grep 命令和正则表达式的使用,涵盖变量类别、Bash 配置文件、计算机理解、编程语言、Bash 编程、文件搜索、grep 命令、正则表达式、基本正则表达式的元字符、次数匹配、位置锚定、分组、...
在Linux和Unix环境中,正则表达式常用于命令行工具,如grep、sed和awk等。在这些环境中,正则表达式广泛用于文本处理和自动化任务的脚本编写。 综上所述,正则表达式是文本处理中不可或缺的工具。通过理解正则...
Linux Shell中的正则表达式是用于模式匹配的强大...在Linux Shell中,正则表达式通常在`grep`、`sed`、`awk`等命令中使用,用于数据提取、过滤和转换。了解和熟练掌握正则表达式是提高Linux Shell脚本编程能力的关键。
grep (缩写来自Globally search a Regular Expression and Print)是一种强大的文本搜索工具,它能使用特定模式匹配(包括正则表达式)搜索文本,并默认输出匹配行。Unix的grep家族包括grep、egrep和fgrep。Windows...
在Linux环境中,正则表达式(Regular Expression,简称regex)是一种强大的文本处理工具,常与`grep`命令结合使用,用于从文本文件中搜索、匹配特定的字符串模式。正则表达式通过特殊的字符和普通字符组合,描述出一...
正则表达式支持的工具众多,包括但不限于grep、awk、vi和Emacs文本编辑器。脚本语言如Python、Tcl、JavaScript和Perl也都支持正则表达式,其中Perl在文本处理方面的应用尤为出色。 在Java语言中,正则表达式的支持...
通过本章的学习,我们了解了正则表达式的基本概念、元字符的使用方法以及如何利用`grep`和`find`这两个实用工具来进行文本搜索和文件查找。正则表达式作为一项强大的文本处理技术,在日常编程工作中有着广泛的应用。...
例如,Perl和JavaScript的正则表达式支持不同的语法特性,而grep和sed命令在Linux/Unix环境中提供了命令行的正则处理功能。理解这些工具之间的异同,可以帮助你在不同环境下灵活运用正则表达式。 "aspsun....
在深入探讨Linux下的正则表达式(Regular Expression,简称RE)和`grep`命令之前,我们首先需要理解正则表达式的基本概念及其在系统管理与日常应用中的重要性。 ### 正则表达式:理解与应用 正则表达式是一种用于...
Linux Shell中的正则表达式是文本处理和搜索的关键工具,尤其在使用命令行工具如grep、sed和awk时。它们允许我们以灵活的方式查找、替换和解析文本模式。以下是正则表达式的基本概念、分类以及在Linux常用文本工具中...
本文以grep为例来讲解正则表达式。 grep命令 功能:输入文件的每一行中查找字符串。 基本用法: grep [-acinv] [–color=auto] [-A n] [-B n] ‘搜寻字符串’ 文件名 参数说明: -a:将二进制文档以文本方式处理 -c...
总结,Linux命令行和shell脚本结合正则表达式能解决大量文本处理问题,无论是简单的文件搜索,还是复杂的邮件验证,都有其独特的优势。通过不断学习和实践,你将能够更熟练地驾驭这一强大的工具。
3. **grep**:grep用于在文件中查找匹配特定模式的行,其支持正则表达式模式匹配。 4. **vi/vim**:vi编辑器中的替换命令`:%s/pattern/replacement/g`允许用户使用正则表达式进行全局替换。 5. **Editplus**:在...