grep基础

基本格式为:

grep option pattern file-list

grep命令用来抽出file-list中我们需要的数据,同时过滤掉那些不关心的内容。我们关心的内容体现在pattern中,它表现为一个字符串,或者是一个正则表达式,然后grep读取file-list的每一行内容,如果遇到匹配pattern的行,就把他输出到屏幕上;不匹配的那些就忽略掉。

先说pattern,当它是一个单独的字符串时,直接写就可以了;但是如果里面包含空格或其他分隔符,就需要用引号(单、双均可)括起来。当pattern表现为一个正则表达式时,如果不含控制字符,可以直接写;有控制字符时,必须要加上引号。(对于控制字符,可以搜一下或者自己在实践中总结。。其实保险起见,最好都加上引号)

file-list就是说可以检索多个文件,不同文件之间用空格隔开。file-list其实也可以用一个正则表达式代替,正则表达式好有用的说。。

剩下的就是option了,隆重介绍下:

1、-数字n

匹配到某一行时,同时把该行的上下n行显示出来

2、-b

在每行前打印字符的字节偏移量

所谓字节偏移量,我查了一些资料同时做了一些实验,得出的结论是,每行前面给出的这个偏移值指的是,该行的那个匹配模式距离文本中第一个匹配模式的距离,这个距离是以字节为单位的,计算方法就是,两个模式之间的字符数量乘以8,因为每个字符需要用8个字节表示。这跟系统设置有关,我的是ubuntu系统,并且LANG=zh_CN.UTF-8,这时每个字符,不管是不是中文字符都是用8个字节表示的。

目前还不知道这个选项有啥用。

3、-c

只显示匹配行的编号,不显示该行内容。

4、-f

指定pattern来源(比如一个文件),而不是从终端输入。

5、-h

不显示文件名前缀。

当检索多个文件时,grep默认在匹配行的前面输出文件名,使用这个选项会阻止这一行为。

6、-i

忽略pattern中的大小写。默认情况下,grep是严格区分pattern中的大小写的。

7、-q

这是一个非常重要的选项,因为在某些情况下,我们不想要grep把匹配行的内容打印出来(比如只想知道出口状态时),那么这个选项就派上用场了。

8、-l

只打印匹配的文件名。显然这是在检索多个文件时使用的(好吧,单个文件有时也有用)。

9、-L

与上面相反,只打印不匹配的文件名。

10、-n

在匹配行的前面打印行号。

11、-s

不显示错误信息,比如模式或文件不存在,grep似乎默认是有这个选项的。

12、-v

只显示不匹配的行。。。

主要就这些吧。

时间: 2024-11-02 02:29:05

grep基础的相关文章

grep基础应用

1.grep中的位置锚定,用于指定字符出现的位置     ^ 锚定行首,^char          $ 锚定行尾,char$          ^$ 空白行          \<char 锚定词首=\bchar          char\> 锚定词尾=char\b          grep分组     \( \ )     \(ab\)*xy  表示ab出现任意次,包括0次          grep引用         \1 后向引用,引用前面的第一个左括号以及与之对应的右括号中的模

grep基础命令练习及Find命令详解

定义一个对所有用户都生效的命令别名,例如 lftp='lftp 172.168.0.1/pub' ?在/etc/bashrc文件底部增加一行 alias lftp='lftp 172.168.0.1/pub' 显示/etc/passwd文件中不以/bin/bash结尾的行 egrep -v "/bin/bash$" /etc/passwd 找出/etc/passwd文件中,包含二位数字或者三位数的行 grep -E "\<[0-9]{2,3}\>" /e

基于Android设备的 Kali Linux渗透测试教程(内部资料)

试读样章下载地址:http://pan.baidu.com/s/1hqgPu3U 前  言 Kali Linux是业内最知名的安全渗透测试专用操作系统.它的前身就是业界知名的BackTrack操作系统.BackTrack在2013年停止更新,转为Kali Linux.Kali Linux集成了海量渗透测试.攻击等专用工具.通过系统更新,用户可以快速获取最新的各类工具.所以,Kali Linux是渗透测试专业人员的不二选择. 由于渗透目标多样化,使用传统形式的电脑PC或者笔记本并不是很方便.而智能

java web 开发三剑客 -------电子书

Internet,人们通常称为因特网,是当今世界上覆盖面最大和应用最广泛的网络.根据英语构词法,Internet是Inter + net,Inter-作为前缀在英语中表示“在一起,交互”,由此可知Internet的目的是让各个net交互.所以,Internet实质上是将世界上各个国家.各个网络运营商的多个网络相互连接构成的一个全球范围内的统一网,使各个网络之间能够相互到达.各个国家和运营商构建网络采用的底层技术和实现可能各不相同,但只要采用统一的上层协议(TCP/IP)就可以通过Internet

grep、sed、awk基础

grep grep :根据模式,搜索文本,并将符合模式的文本行显示出来, 使用基本正则表达式定义的模式来过滤文本的命令: -i :忽略大小写 --color :加上颜色, -v :显示没有被模式匹配到的行 -n:显示匹配到的行在文件中的行数 -w:精确匹配,只匹配整个单词,而不是字符串的一部分 -o :只显示被模式匹配到的字符串 -A #:after, 后#行 -B #: before, 前#行 -C #:context, 前后各#行 -c:显示一个文件被匹配到几行 -E :使用扩展正则表达式

grep命令的基础用法及进阶

bash 通配符: *: ?: []: 所有以m,n,r开头的以.conf结尾的文件 eg:[mnr].conf [^]:非[]中的 [[:space:]] [[:upper:]] [[:lower:]] [[:alnum:]] [[:digit:]] [[:punct:]] 通配符:需要说明的是:通配符看起来有点象正则表达式语句,但是它与正则表达式不同的,不能相互混淆.把通配符理解为shell 特殊代号字符就可. 而且涉及的只有,*,? [] ,{} 这几种. 字符              

linux基础之grep命令

Linux基础之grep命令 grep命令是linux下的行过滤工具,参数繁多,功能比较强大,用起来比较方便,下面就将grep及其egrep分模块讲述其功能. 1.Grep:根据模式搜索文本,并将符合模式的文本行显示出来 2.Grep的语法:Grep  [option]   PATTERN  [file-] Pattern: 文本字符和正则表达是元字符组合而成匹配条件 3.grep的常用选项: -i: 不区分字符的大小写(只适用于单字符): -I:字符的大写: --color: 匹配的串用高亮颜

grep与正则表达式基础

目录 grep 正则表达式 grep用法简介 我们介绍GREP的用法,主要用于匹配行,我们借助下面的正则表达式来介绍如何使用grep,还有就是正则表达式在linux中是极为重要的一部分. 1 命令:grep 2 格式:grep [option] "pattern" filename 3 选项: 4 -v:反向选择 5 -i:忽略大小写 6 -n:显示行号 7 -c:统计行数 8 -o:仅显示匹配到的字符串 9 -w:匹配整个单词 10 -q:不输出任何信息 11 -A 2:after

Linux学习资料-基础正规表示法(grep)

基础正规表示法:   -------------------------------------------------------------------------------- grep 语法: [root @test /root ]# grep [-acinv] '搜寻字符串' filename 参数说明: -a :将 binary 档案以 text 档案的方式搜寻数据 -c :计算找到 '搜寻字符串' 的次数 -i :忽略大小写的不同,所以大小写视为相同 -n :顺便输出行号 -v :