linux命令之grep用法

 grep是linux中很常用的一个命令,主要功能就是进行字符串数据的对比,能使用正则表达式搜索文本,并将符合用户需求的字符串打印出来。grep全称是GlobalRegularExpressionPrint,表示全局正则表达式版本,它的使用权限是所有用户。grep在数据中查找出一个字符串时,是以整行为单位来进行数据选取的。

(1)命令格式

  grep[cinvs]'patten'filename

(2)主要参数

-c:只输出匹配行的计数。
-i:不区分大小写(只适用于单字符)。
-n:显示匹配行及行号。
-s:不显示不存在或无匹配文本的错误信息。
-v:显示不包含匹配文本的所有行。

(3)patten正则表达式主要参数

\:转义字符,忽略正则表达式中特殊字符的原有含义。
^:匹配以某个字符串开始的行。
$:匹配以某个字符串结束的行。
\<:从匹配正则表达式的行开始。
\>:到匹配正则表达式的行结束。
[]:在[]内个某单个字符,如[A]即A符合要求。
[-]:属于[-]所标记的范围字符,如[A-Z],即A、B、C一直到Z都符合要求。
.:表示一定有1个任意字符。
*:重复前面0个或多个字符。

  关于正则表达式的参数还有很多,这里这是列出很少的一部分,具体大家可以参照正则表达式的详解。

(4)实例

  要用好grep这个工具,其实就是要写好正则表达式,所以这里不对grep的所有功能进行实例讲解,只列几个例子,讲解一个正则表达式的写法。

$ls-l|grep'^a'

通过管道过滤ls-l输出的内容,只显示以a开头的行。

$grep'test'aabbcc

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

$grep'\{5\}'aa

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

$grep'w\(es\)t.*'aa

显示所有包含west,且之后含有零个或多个任意字符的行。

你可能感兴趣的:(linux,字符串,表达式,信息,区分大小写)