grep使用简介

Posted 梅诺

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了grep使用简介相关的知识,希望对你有一定的参考价值。

      初期使用grep命令最常见的是查找一个进程,使用的命令为:

<span style="font-size:18px;"><strong>ps aux | grep +进程文件名 //这条命令语句就在系统中为我们找出满足要求的进程</strong></span>
    当然,这只是grep命令使用的一个微小方面。以下将是详细的学习介绍grep命令。

    grep命令被称为行过滤工具,它通常被用来进行模式匹配形式的查找。那什么又叫模式匹配呢?模式匹配是说不在限定要查找的具体的key值,而是通过一定的条件来判断匹配(也就是需要使用正则表达式来匹配)。

(一)简单的添加参数查找匹配串

1.grep --color +要匹配的内容+文件 //显示出文件里符合匹配的内容(--color可以标出字符的颜色)

2.grep -i +要匹配的内容+ 文件    //不区分大小写的搜索

2.grep -l +要匹配的内容+ 文件 //列出满足匹配条件的文件名


4..grep -w +要匹配的内容+ 文件 //列出不满足匹配条件的文件名

5.grep -C number +要匹配的内容+ 文件  //匹配 的上下文显示出[number]行

6.grep +要匹配的内容1 |+要匹配的内容2 +文件名 //显示匹配内容1或者内容2的文件名

7.grep +要匹配的内容1+file | grep +要匹配的内容2 //显示既匹配内容1又匹配内容2 的行

8.grep -c  +要匹配的内容+ 文件 //只输出匹配行的计数

9.grep -n  +要匹配的内容+ 文件 //显示匹配行及行号

10.grep -v //不显示不包含匹配文本的所以有行
11.grep -s //不显示错误信息
12.grep -E //使用扩展正则表达式

(二)什么是正则表达式?

构成正则表达式的三个必须条件为:

                                     1.匹配的字符类别

                                     2.数量限定符

                                     3.位置限定符

这三者共同构成了正则表达式,其中单独的使用一个作为限定条件都无法达到精确的匹配。下面就分别介绍一下是哪个要素的具体组成。

                  字符类

字符

         含义

.

任意匹配一个字符(这个字符必须存在)

[]

匹配括号中的任意一个字符

-

在[]内表示字符范围

^

位于[]内的开头,匹配出括号中的字符之外的任意一个字符

[[:xxx:]]

Eg:[[:digit:]]/[[:alpha:]]表示按数字或者字母匹配

 

   

                              数量限定符

紧跟在它前面的单元匹配0次或一次

+

紧跟在它前面的单元匹配一次或多次

*

紧跟在它前面的单元匹配0次或多次

N

紧跟在它前面的单元精确匹配N次

N,

紧跟在它前面的单元匹配至少N次

,M

紧跟在它前面的单元匹配至多M次

N,M

紧跟在它前面的单元匹配至少N次至多M次


         位置限定符

 

字符

含义

^

匹配行首的位置

$

匹配行末的位置

\\<

匹配单词开头的位置

\\>

匹配单词结尾的位置

\\b

匹配单词开头或结尾的位置

\\B

匹配非单词开头或结尾的位置


由上面的例子可以看出:\\b放在匹配字符的开头功能与\\>相同,放在匹配字符的结尾功能与\\<相同。


(三)grep正则表达式有两种规范,分别是Extended和Basic.默认情况下,匹配的时候是按照Basic规范的。在Basic模式下,字符?+ | ()都被解释为普通字符,要表示这些字符的特殊含义的时候需要添加\\转义。当然若添加-E选项的话,字符匹配为全匹配。


以上是关于grep使用简介的主要内容,如果未能解决你的问题,请参考以下文章

grep 固定字符串不是 grepping 确切的字符串,带有额外字符 '-' 的字符串结尾也即将到来

Linux系统文本三剑客之grep使用方法

正则表达式:数字开头中间字母结尾数字

git grep简介

正则配合grep使用简介

linux中列出所有文件名以某个字符结尾的文件用啥命令