9.1-9.3 grep工具

grep工具

grep是什么

grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。

grep的工作方式是这样的,它在一个或多个文件中搜索字符串模板。如果模板包括空格,则必须被引用,模板后的所有字符串被看作文件名。搜索的结果被送到屏幕,不影响原文件内容。

选项和语法

语法

语法: grep  [-cinvABC]  'word'  filename

#如grep -c '12345' 1.txt    匹配1.txt文件里符合有12345字符的

选项

-c :只输出匹配行的计数

-i :忽略大小写(匹配的条件字符忽略大小写)

-n :在输出符合要求的行的同时连同行号一起输出(显示行号)

-v :打印不符合要求的行(取反)

-A :后跟一个数字(有无空格都可以),例如 –A2则表示打印符合要求的行以及下面两行

-B :后跟一个数字,例如 –B2 则表示打印符合要求的行以及上面两行

-C :后跟一个数字,例如 –C2 则表示打印符合要求的行以及上下各两行

-r :  会把目录下面所有的文件全部遍历(加h选项,遍历的时候不会显示文件名,只显示匹配到的字符)

-h:遍历文件时不显示文件名

-l:查询多文件时只输出包含匹配字符的文件名

-s:不显示不存在或无匹配文本的错误信息

egrep

egrep=grep -E 作用是需要转义但是不输入转义符的时候用可以起到转义特殊符号的作用

如:egrep ‘(aaa|bbb)’1.txt

这个例子的意思是匹配1.txt里的aaa或者bbb,括号为特殊符号需要转义,用egrep也可以达到转义的目的,如图:

特殊符号的含义

\: 忽略正则表达式中特殊字符的原有含义

^:匹配正则表达式的开始行

^放在中括号前面是可以匹配以括号内字符开头的行(图为以字母开头的行)

可以把^放到中括号里面,会匹配到除了括号内字符之外的字符(图中为除了字母之外的字符)

$: 匹配正则表达式的结束行

中括号内^&表示开头到结尾,就会匹配所有行,不加中括号会匹配空行。

在目录下遍历文件

在etc下遍历以txt为结尾内容包含root的文件:

grep --include "*.txt" -r 'root' /etc/

扩展:

把一个目录下,过滤所有*.php文档中含有eval的行
grep -r --include="*.php" 'eval' /data/

\<:从匹配正则表达 式的行开始

\>:到匹配正则表达式的行结束

[ ]:单个字符,如[A]即A符合要求 ,或者[aN]包含a或者N的行。(不加括号就是以字符串来匹配)

[ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 ,还有[a-Z]表示所有字母,或者[0-9]可以匹配到所有数字字符的行。

. :任意一个字符

* :有字符,长度可以为0

原文地址:http://blog.51cto.com/13530586/2061410

时间: 2024-08-01 00:12:57

9.1-9.3 grep工具的相关文章

shell脚本--grep工具

grep工具 shell命令行之所以便捷和它所支持的工具是离不开的,其中grep工具就是一个搜索神器,它可以搜索整个linux系统所有文件中的所有信息. grep的灵活使用离不开正则表达式 正则表达式是一种查找以及字符串替换操作,它只是一个字符串,没有长度的限制,但是一般却表较短.可以被认为是一种轻量级.简介.使用与特定领域的编程语言. 这里主要使用grep工具 grep工具一般用来做两件事,搜索文件和搜索指定字符串 grep常用命令 -a 不要忽略二进制数据. -b 在显示符合范本样式的那一行

正则表达式-grep工具常见选项的使用

正则表达式:就是规定一些语法表示字符类.数量限定符.和位置限定符关系,再和普通字符共同来表示一个模式,用某种模式来匹配一类字符串,许多程序设计语言都支持正则表达式匹配 一个正则表达式的三个要素和一些特殊字符 先了解一下grep工具: grep:文本过滤工具.它能使用正则表达式搜索文本,并把匹配的行打印出来.正则表达式在grep中用来查找符合模式的字符串,grep找的是包含某个模式的行. egrep相当于grep -E,表示采用Extended正则表达式语法. grep的正则表达式有Basic和E

Linux:正则表达式及:grep工具

什么是正则表达式: 正则表达式就是处理字符串的方法,他是以行为单位来进行字符串的处理行为,正则表达式通过一些特殊符号的辅助,可以让用户轻易达到查找,删除,替换某种特定字符串的处理程序,其实就像相当与添加位置限定符,数量限定符,字符想定符来进行范围缩减匹配. 2.grep工具: 首先grep就是一个查找工具,然后通过正则表达式完成字符串的搜索. 存在3种限定符: 首先是字符限定符: 数量限定符: 位置限定符: 其他限定符: 是grep正则表达式的Extended规范,Basic规范也有这些语法,只

grep工具的使用与正则表达式

grep:(Global search REgular expression and Print out the line.) grep是Linux的文本内容搜索工具,对于给定的文档,以行为单位,根据匹配条件对文本内容逐行匹配,匹配的条件小到单个字符大到整行,搜索时以指定的模式匹配字符串表达的内容为单位,这里提到的单位有字符串长度的意义,以这个字符串作为一个完整的单元从前至后匹配行中的内容,当在行中匹配到符合条件的内容后默认是将该行的予以显示,而不是匹配到的字符串,搜索时要求给定的搜索条件,即模

正则、grep工具

正则表达式是用于字符串的模式分割.匹配.查找及替换等操作.模糊匹配 Linux正则表达式一般以行为单位处理的. 通配符例子:ls *.log这里的*就是通配符(表示所有),不是正则表达式 三剑客以外的*是通配符 grep [-cinvABC] 'word' filename -c 行数 [[email protected] ~]# grep "root" passwd  //grep自带颜色 root:x:0:0:root:/root:/bin/bash operator:x:11:0

centos 下grep工具学习记录

一.grep工具快速查找表 grep标准正则相关元字符表示及其的含义: 形式 说明 . 这是一个英文的点号.表示匹配任意单个字符: [] 表示匹配指定范围内的任意单个字符: [^] 表示匹配指定范围外的任意单个字符: * 表示匹配前面的条目0次或多次: .* 表示匹配任意长度的任意字符: \? 表示匹配前边的条目至多一次,既 0次或1次: \+ 表示匹配前边的条目1次或多次: \{n\} 表示匹配前边的条目n次,多于n次,少于n次都不可行: \{n,\} 表示匹配前边的条目n次或n次以上,既大于

浅析grep工具相关选项及正则表达式

grep是linux下一个重要的文本处理工具之一,全称是Globel Search Regular Expression and Printing out the line(全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,是一个对行进行操作的搜索工作,它能使用正则表达式搜索文本,并把匹配的行打印出来. grep家族包括grep.egrep和fgrep. egrep表示扩展的grep,相比grep支持更多的元字符,"grep -E"相当于egrep.fgrep是fast gr

shell下的grep工具

一. grep grep(Globally search a Regular Expression and Print)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,将匹配的行打印出来,但是并不影响原文件的内容:并且通过返回值来通知搜索结果,如果命令的退出码为0则表示搜索成功,返回值为1则表示搜索不成功:如果搜索的文件不存在,则会返回2:因此利用这些返回值就可以进行相应的文本处理工作. 对于grep来说,其工作模式有两种:一种是Basic模式,在该模式下,其命令参数的正则表达式中对于字符

正则 :grep 工具的正则表达式

             正则: .正则就是一串有规律的字符串 .正则对编写shell脚本有很大帮助 .各种编程语言中都有正则 正则工具:grep/egrep(egrep是grep的扩展).sed.awk                grep (过滤关键词)  格式: grep [-cinvABC] 'word' filename   (1)-c 行数   (2)-i 不区分大小写  (3)-n 显示行号  (4)-v 取反(过滤出不是关键字外的行)  (5)-r 遍历所有子目录  (6)-A