grep 命令学习总结

发表于: lnmpa | 作者: darkmi | 日期: 2013/04/09 08:00
标签: grep
字号:

grep命令用于在指定文件中查找与模式匹配的行,并将匹配的行显示在标准输出上。如果没有指定文件,则从标准输入中读取。当在多个文件中进行查找中,将在每一行输出之前加上文件名。在搜索的文件名中允许使用通配符。

语法:

grep [参数] 查找模式 文件名 [文件名]

参数:

-c:

只显示匹配行的行数

-i:

匹配时不区分大小写,默认情况下匹配时区分大小写

-h:

在多个文件中查找时,输出行前不显示文件名

-n:

在输出前加上匹配串所在行的行号(文件首行行号为1)

-v:

只显示不包含匹配串的行。

-f filename:

从指定文件中获取搜索模式,每行一个搜索模式项

例子:

[root@localhost logs]# grep AbstractController *.log

翻译:在当前目录下的所有log文件中中查找AbstractController字符串

注意:搜索的字符串如果没有空格则可以不用引号,如有引号则需要空格,后面有例子。

例子:

[root@localhost etc]# grep mysql /etc/passwd
mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bash

翻译:将系统帐号中文件包含mysql的行显示出来。

当搜索模式中包含空格是,要把搜索模式用单引号括起来。

例子:

[root@localhso user1]# cat > dialog
your name is:
linux
<ctrl+d>
[root@localhost user1]# grep 'your name' dialog
your name is:

在有多个搜索模式时,可以将这些搜索模式写入文件中,利用-f参数从文件中读取搜索模式项。

例子:

首先把搜索模式写入mode.txt文件中:

[root@localhost user1]# cat > mode.txt
name
lin*
<ctrl+d>

接下来使用该文件中的模式进行搜索:

【root@localhost user1】# grep –f mode.txt dialog
your name is:
linux

[整理自网络]

切换主题切换主题
返回顶部