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使用简介的主要内容,如果未能解决你的问题,请参考以下文章