Linux 编辑器(三)--grep-Global search Regular Expression and Print out

转载 2012年03月27日 21:49:53

grep是一个最初用于UNIX操作系统的命令行工具。在给出文件列表或标准输入后,grep会对匹配一个或多个正则表达式的文本进行搜索,并只输出匹配的文本。语法为:grep [选项] 字符模式 [文件名1,文件名2]。不输入文件名则从标准输入读取内容。

grep使用正则表达式元字符基本集,包括:
^:匹配行首;
$:匹配行尾;
.:匹配任意字符;
*:匹配0个或多个任意字符;
[]:匹配指定范围内的其中一个字符;
[^]:匹配不在指定范围内的字符;
\<:匹配单词首。(在linux终端上敲命令时,需要多使用一个反斜杠,如:grep abcd\\< filename,因为第一个反斜杠用于转义一个shell的反斜杠。)
\>:匹配单词末。
\{m\}:匹配前一字符的m次出现。
\{m,\}:匹配前一字符的至少m次出现。
\{m,n\}:匹配前一字符至少m次,至多n次出现。

grep的选项包括:
-#:同时显示匹配行上下的#行,#表示数字;
-b:在每行前打印字符偏移量;
-c:只打印匹配的行数,不显示匹配的内容;
-f FILE:从FILE文件中提取模式;
-h:当搜索多个文件时,不显示匹配文件名前缀;
-i:忽略大小写;
-q:取消显示,只返回退出状态,0表示找到了匹配的行;
-l:打印匹配模式的文件清单;
-L:打印不匹配模式的文件清单;
-n:在匹配的行前面打印行号;
-s:不显示关于不存在或无法读取文件的错误信息;
-v:反检索,只显示不匹配的行;
-w:如果被\<和\>引用,就把表达式作为一个单词搜索;
-V:显示软件版本信息。

grep的退出状态存储在$?里,通过ehco $?可以查看,搜索成功值为0,搜索不成功值为1,文件不存在则返回2。

egrep(extend grep)命令与grep相似,执行效率比grep高,但需要占用较大内存空间。egrep使用正则表达式元字符的扩展集,包括:
+:匹配一个或多个前一字符;
?:匹配一个或0个前一字符;
a|b|c:匹配a或b或c。
():分组符号;
x{m}、x{m,}、x{m,n}:作用同x\{m\}、x\{m,\}、x\{m,n\}。

grep -E打开对元字符扩展集的支持,实现与egrep相同的功能。

fgrep:与grep相似,占用空间比egrep小,速度比grep快,但不识别正则表达式。

相关文章推荐

Regular Expression与grep

關鍵是要能夠區分 shell command line 上的 meta 與 literal 這兩種不同的字符類別. 然後, 我這裡才跟你講: --- RE 表達式裡的字符也是分為 meta 與 l...

Search across multiple lines using regular expression in VIM

Search across multiple lines (come from http://vim.wikia.com/wiki/Search_across_multiple_lines) ...
  • oygy
  • oygy
  • 2012-09-20 09:25
  • 762

正则表达式(Regular Expression)高级使用(文本编辑器,数据库,Java)

一、开发环境和文本编辑器中使用正则表达式 eclipse Notepad++ EditPlus UltraEdit 二、数据库中也可以使用正则表达式 Mysq15.5以上 Oracl...

linux常用命令-find和grep区别及使用方法

find和grep区别 find用法详解 grep用法详解

(3)LUA程序设计-表达式与语句(expression & statement)

1.表达式      lua的表达式,一般由数字/字符串常量,一元/二元运算符,函数调用构成,除此外,lua表达式当中还可以有函数定义和table构造式      1.1算术运算符   ...

Perl Regular Expression

  • 2012-11-01 10:44
  • 285KB
  • 下载

leetcode 10.Regular Expression Matching(正则表达式匹配) 解题思路和方法

Regular Expression Matching Implement regular expression matching with support for '.' and '*'. ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)