linux文本处理-grep
2016-03-13 13:03
501 查看
grep(globe regular expression and print out the line)是linux文本搜索工具,
man文档解释如下:grep searches the named input FILEs (or standard input if no files are named, or if a single hyphen-minus (-)is given as file name) for lines containing a match to the given PATTERN.By default, grep prints the matching lines.
grep家族
grep:支持使用基本正则表达式
egrep:支持使用扩展正则表达式,grep -E
fgrep:不支持使用正则表达式,grep -F
grep命令用法:
grep [OPTIONS] PATTERN [FILE...]
常用选项:
--color=auto:对匹配到的文本着色后高亮显示;
-i:忽略字符大小写;
-o:仅显示匹配 到的文本自身;
-v, --invert-match:反向匹配;
-E:支持扩展的正则表达式;
-q, --quiet, --silient:静默模式,不输出任何信息;
基本正则表达式元字符:
字符匹配:
.:匹配任意单个字符;
[ ]:匹配范围内的任意单个字符;
[^ ]:匹配范围外的任意单个字符;
[:digit:]匹配所有数字
[:lower:]匹配所有小写字母
[:upper:]匹配所有大写字母
[:alpha:]匹配所有字母
[:alnum:]匹配所有字母数字
[:space:]匹配空格
[:punct:]匹配标点符号
匹配次数:
用在要指定其出现的次数的字符后面,用限制其前面的字符要出现的次数;默认工作于贪婪模式;
*:匹配前面的字符任意次(0,1或多次);
.*:任意长度的任意字符;
\+:匹配前面的字符至少1次;
\?:匹配前面的0次或1次,即前面的字符可有可无;
\{m\}:其前面的字符出现m次,m为非负整数;
\{m,n\}:其前面的字符出现m次,m为非负整数;[m,n]
\{0,n\}:至多n次;
\{m,\}:至少m次;
位置锚定
限制使用模式搜索文本,限制模式所匹配到的文本只能出现于目标文本的哪个位置;
^:行首锚定;用于模式的最左侧,^PATTERN
$:行尾锚定;用于模式的最右侧,PATTERN$
^PATTERN$:要让PATTERN完全匹配一整行;
^$:空行;不能过滤带空格符或tab符的空行
^[[:space:]]*$:可过滤出带空格或tab符的空行
分组与引用:
\(PATTERN\):将此PATTERN匹配到的字符当作一个不可侵害整体进行处理;
Note:分组括号中的模式匹配到的字符会被正则表达式引擎自动记录于内部的变量中,这些变量是\1, \2, \3, ...
pat1\(pat2\)pat3\(pat4\(pat5\)pat6\)
\n:模式中第n个左括号以及与之匹配的右括号之间的模式所匹配到的字符串;(不是模式,而是模式匹配的结果)
\1:第一组括号中的pattern匹配到的字符串;
\2:第二组括号中的pattern匹配到的字符串;
egrep命令用法:
支持使用扩展正则表达式的grep命令,相当于grep -E;
egrep [OPTIONS] PATTERN [FILE...]
扩展正则表达式的元字符:
字符匹配:
.:任意单个字符
[ ]:范围内的任意单个字符
[^ ]:范围外的任意单个字符
匹配次数:
*:任意次;
?:0次或1次;
+:1次或多次;
{m}:匹配m次;
{m,n}:至少m次,至多n次;
{0,n}
{m,}
位置锚定:
^:行首
$:行尾
\<, \b:词首
\>, \b:词尾
分组及引用:
(pattern):分组,括号中的模式匹配到的字符会被记录于正则表达式引擎内部的变量中;
后向引用:\1, \2, ...
或者:
a|b:a或者b
C|cat:表示C或cat
(C|c)at:表示Cat或cat
本文出自 “liberalism” 博客,请务必保留此出处http://edonkey.blog.51cto.com/887243/1750507
man文档解释如下:grep searches the named input FILEs (or standard input if no files are named, or if a single hyphen-minus (-)is given as file name) for lines containing a match to the given PATTERN.By default, grep prints the matching lines.
grep家族
grep:支持使用基本正则表达式
egrep:支持使用扩展正则表达式,grep -E
fgrep:不支持使用正则表达式,grep -F
grep命令用法:
grep [OPTIONS] PATTERN [FILE...]
常用选项:
--color=auto:对匹配到的文本着色后高亮显示;
-i:忽略字符大小写;
-o:仅显示匹配 到的文本自身;
-v, --invert-match:反向匹配;
-E:支持扩展的正则表达式;
-q, --quiet, --silient:静默模式,不输出任何信息;
基本正则表达式元字符:
字符匹配:
.:匹配任意单个字符;
[ ]:匹配范围内的任意单个字符;
[^ ]:匹配范围外的任意单个字符;
[:digit:]匹配所有数字
[:lower:]匹配所有小写字母
[:upper:]匹配所有大写字母
[:alpha:]匹配所有字母
[:alnum:]匹配所有字母数字
[:space:]匹配空格
[:punct:]匹配标点符号
匹配次数:
用在要指定其出现的次数的字符后面,用限制其前面的字符要出现的次数;默认工作于贪婪模式;
*:匹配前面的字符任意次(0,1或多次);
.*:任意长度的任意字符;
\+:匹配前面的字符至少1次;
\?:匹配前面的0次或1次,即前面的字符可有可无;
\{m\}:其前面的字符出现m次,m为非负整数;
\{m,n\}:其前面的字符出现m次,m为非负整数;[m,n]
\{0,n\}:至多n次;
\{m,\}:至少m次;
位置锚定
限制使用模式搜索文本,限制模式所匹配到的文本只能出现于目标文本的哪个位置;
^:行首锚定;用于模式的最左侧,^PATTERN
$:行尾锚定;用于模式的最右侧,PATTERN$
^PATTERN$:要让PATTERN完全匹配一整行;
^$:空行;不能过滤带空格符或tab符的空行
^[[:space:]]*$:可过滤出带空格或tab符的空行
分组与引用:
\(PATTERN\):将此PATTERN匹配到的字符当作一个不可侵害整体进行处理;
Note:分组括号中的模式匹配到的字符会被正则表达式引擎自动记录于内部的变量中,这些变量是\1, \2, \3, ...
pat1\(pat2\)pat3\(pat4\(pat5\)pat6\)
\n:模式中第n个左括号以及与之匹配的右括号之间的模式所匹配到的字符串;(不是模式,而是模式匹配的结果)
\1:第一组括号中的pattern匹配到的字符串;
\2:第二组括号中的pattern匹配到的字符串;
egrep命令用法:
支持使用扩展正则表达式的grep命令,相当于grep -E;
egrep [OPTIONS] PATTERN [FILE...]
扩展正则表达式的元字符:
字符匹配:
.:任意单个字符
[ ]:范围内的任意单个字符
[^ ]:范围外的任意单个字符
匹配次数:
*:任意次;
?:0次或1次;
+:1次或多次;
{m}:匹配m次;
{m,n}:至少m次,至多n次;
{0,n}
{m,}
位置锚定:
^:行首
$:行尾
\<, \b:词首
\>, \b:词尾
分组及引用:
(pattern):分组,括号中的模式匹配到的字符会被记录于正则表达式引擎内部的变量中;
后向引用:\1, \2, ...
或者:
a|b:a或者b
C|cat:表示C或cat
(C|c)at:表示Cat或cat
本文出自 “liberalism” 博客,请务必保留此出处http://edonkey.blog.51cto.com/887243/1750507
相关文章推荐
- centos7关闭防火墙(转)
- 共享库查找顺序
- Linux/UNIX套接字连接
- linux系统下的软件管理(转)
- linux 第三周
- 【翻译自mos文章】Linux的/var/log/messages是空的(0k),messages.0, messages.1也是空的
- CentOS6.5 64位下源码安装PostgreSQL9.5.1
- linux的用户、组和权限管理
- linux磁盘分区、文件系统创建与挂载
- .Net程序员学习Linux最简单的方法
- Linux内核分析——跟踪分析Linux内核的启动过程
- 20135316王剑桥Linux内核学习笔记第三周
- crontab——Linux 下的定时任务
- mac自带的sed和linux不一致, 需要安装gnu-sed
- linux及安全第三周总结——跟踪分析LINUX内核的启动过程
- Linux内核分析 NO.3
- linux内核分析第三周
- linux中c/c++连接mysql示例程序
- 在CentOS上部署开源博客系统Blog_mini
- 在CentOS上使用yum安装MySQL+安全优化