grep 命令(grep命令)

grep 命令(grep命令)

大家好,今天给各位分享grep 命令的一些知识,其中也会对grep命令进行解释,文章篇幅可能偏长,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在就马上开始吧!

grep 命令详解grep命令的由来可以追溯到UNIX诞生的早期,在UNIX系统中,搜索的模式被称为正则表达,为了要彻底搜索一个文件,有的用户在要搜索的字符串前加上前缀global,一旦找到相匹配的内容,用户就像将其输出到屏幕上,而将这一系列的操作整合到一起就是global

regularexpressionsprint,而这也就是grep命令的全称。

grep命令能够在一个或多个文件中,搜索某一特定的字符模式(也就是正则表达式),此模式可以是单一的字符、字符串、单词或句子。

正则表达式是描述一组字符串的一个模式,正则表达式的构成模仿了数学表达式,通过使用操作符将较小的表达式组合成一个新的表达式。正则表达式可以是一些纯文本文字,也可以是用来产生模式的一些特殊字符。为了进一步定义一个搜索模式,grep

命令支持如表1所示的这几种正则表达式的元字符(也就是通配符)。

grep命令的基本格式如下:

[root@localhost~]#grep[选项]模式文件名

这里的模式,要么是字符(串),要么是正则表达式。

grep命令常用选项及含义:

-c:仅列出文件中包含模式的行数。

-i:忽略模式中的字母大小写。

-l:列出带有匹配行的文件名。

-n:在每一行的最前面列出行号。

-v:列出没有匹配模式的行。

-w:把表达式当做一个完整的单字符来搜寻,忽略那些部分匹配的行。

注意,如果是搜索多个文件,grep命令的搜索结果只显示文件中发现匹配模式的文件名;而如果搜索单个文件,grep命令的结果将显示每一个包含匹配模式的行。

Linux下Grep命令的详细使用方法

在linux中grep命令是非常有用的,它和管道(|)配合使用,非常强大,用于搜索文本文件.如果想要在几个文本文件中查找一字符串,可以使用‘grep’命令。‘grep’在文本中搜索指定的字符串。

假设您正在‘/usr/src/linux/Documentation’目录下搜索带字符串‘magic’的文件:

$grepmagic/usr/src/linux/Documentation/*

sysrq.txt:*HowdoIenablethemagicSysRQkey?

sysrq.txt:*HowdoIusethemagicSysRQkey?

其中文件‘sysrp.txt’包含该字符串,讨论的是SysRQ的功能。

默认情况下,‘grep’只搜索当前目录。如果此目录下有许多子目录,‘grep’会以如下形式列出:

grep:sound:Isadirectory

这可能会使‘grep’的输出难于阅读。这里有两种解决的办法:

明确要求搜索子目录:grep-r

或忽略子目录:grep-dskip

当然,如果预料到有许多输出,您可以通过管道将其转到‘less’上阅读:

$grepmagic/usr/src/linux/Documentation/*|less

这样,您就可以更方便地阅读。

有一点要注意,您必需提供一个文件过滤方式(搜索全部文件的话用*)。如果您忘了,‘grep’会一直等着,直到该程序被中断。如果您遇到了这样的情况,按,然后再试。

下面是一些有意思的命令行参数:

grep-ipatternfiles:不区分大小写地搜索。默认情况区分大小写,

grep-lpatternfiles:只列出匹配的文件名,

grep-Lpatternfiles:列出不匹配的文件名,

grep-wpatternfiles:只匹配整个单词,而不是字符串的一部分(如匹配‘magic’,而不是‘magical’),

grep-Cnumberpatternfiles:匹配的上下文分别显示[number]行,

greppattern1|pattern2files:显示匹配pattern1或pattern2的行,

greppattern1files|greppattern2:显示既匹配pattern1又匹配pattern2的行。

这里还有些用于搜索的特殊符号:

\分别标注单词的开始与结尾。

例如:

grepman*会匹配‘Batman’、‘manic’、‘man’等,

grep'\grep'\'只匹配‘man’,而不是‘Batman’或‘manic’等其他的字符串。

'^':指匹配的字符串在行首,

'$':指匹配的字符串在行尾,

如果您不习惯命令行参数,可以试试图形界面的‘grep’,如reXgrep。这个软件提供AND、OR、NOT等语法,还有漂亮的按钮:-)。如果您只是需要更清楚的输出,不妨试试fungrep。

grep命令详解

linuxgrep命令:

<pfc05=""fc11=""nbw-blog=""ztag=""js-fs2"="">

1、作用

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

2、格式

grep[options]

3、主要参数

[options]主要参数:

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

-I:不区分大小写(只适用于单字符)。

-h:查询多文件时不显示文件名。

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

-n:显示匹配行及行号。

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

-v:显示不包含匹配文本的所有行。

pattern正则表达式主要参数:

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

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

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

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

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

[]:单个字符,如[A]即A符合要求。

[-]:范围,如[A-Z],即A、B、C一直到Z都符合要求。

。:所有的单个字符。

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

4.grep命令使用简单实例

$grep‘test’d*

显示所有以d开头的文件中包含test的行。

$grep‘test’aabbcc

显示在aa,bb,cc文件中匹配test的行。

$grep‘[a-z]\{5\}’aa

显示所有包含每个字符串至少有5个连续小写字符的字符串的行。

$grep‘w\(es\)t.*\1′aa

扩展资料:

egrep命令,搜索文件获得模式。egrep命令会在输入文件(缺省值为标准输入)中搜索与Pattern参数指定的模式相匹配的行。这些模式是完整的正则表达式就像在ed命令中的那样(除了\(反斜杠)和\\(双反斜杠))。下列规则也应用于egrep命令:

一个正则表达式后面带一个+(加号)会匹配一个或多个的正则表达式,一个正则表达式后面带一个?(问号)会匹配零个或一个该正则表达式,由|(竖线)或者换行符隔开的多个正则表达式会匹配与任何一个正则表达式所匹配的字符串。

一个正则表达式可以被包括在“()”(括弧)中进行分组,换行符将不会被正则表达式匹配,运算符的优先顺序是[,],*,?,+,合并,|和换行符。

注意:egrep命令与grep命令带-E标志是一样的,除了错误消息和使用消息不同以及-s标志的功能不同之外,egrep命令会显示包含该匹配行的文件,如果指定了多于一个File参数的话。

参考资料:百度百科—GREP

参考资料:百度百科—linux命令

好了,文章到此结束,希望可以帮助到大家。

发表评论
留言与评论(共有 0 条评论)
   
验证码:

相关文章