grep命令 查找包含某内容的文件

作用

Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。
grep家族包括grep、egrep和fgrep。egrep和fgrep的命令只跟grep有很小不同。egrep是grep的扩展,支持更多的re元字符, fgrep就是fixed grep或fast grep,它们把所有的字母都看作单词,也就是说,正则表达式中的元字符表示回其自身的字面意义,不再特殊。linux使用GNU版本的grep。它功能更强,可以通过-G、-E、-F命令行选项来使用egrep和fgrep的功能。

格式及主要参数

    grep [options]
    主要参数:  grep --help可查看
         -c:只输出匹配行的计数。
        -i:不区分大小写。
        -h:查询多文件时不显示文件名。
        -l:查询多文件时只输出包含匹配字符的文件名。
        -n:显示匹配行及 行号。
        -s:不显示不存在或无匹配文本的错误信息。
        -v:显示不包含匹配文本的所有行。
        --color=auto :可以将找到的关键词部分加上颜色的显示。

    pattern正则表达式主要参数:
    \: 忽略正则表达式中特殊字符的原有含义。
    ^:匹配正则表达式的开始行。
    $: 匹配正则表达式的结束行。
    \<:从匹配正则表达 式的行开始。
    \>:到匹配正则表达式的行结束。
    [ ]:单个字符,如[A]即A符合要求 。
    [ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。
    .:所有的单个字符。
    *:所有字符,长度可以为0。 

   x\{m\}  #重复字符x,m次,如:‘0\{5\}‘匹配包含5个o的行。   

   x\{m,\} #重复字符x,至少m次,如:‘o\{5,\}‘匹配至少有5个o的行。   

   x\{m,n\}#重复字符x,至少m次,不多于n次,如:‘o\{5,10\}‘匹配5--10个o的行。  

 

实例

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

grep ‘test‘ d*

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

grep ‘test‘ aa bb cc

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

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

\表示转义字符

grep命令使用复杂实例

    明确要求搜索子目录:
    grep -r
    或忽略子目录
    grep -d skip
    如果有很多输出时,您可以通过管道将其转到’less’上阅读:
    itcast$ grep magic /usr/src/Linux/Documentation/* | less
    这样,您就可以更方便地阅读。
    有一点要注意,您必需提供一个文件过滤方式(搜索全部文件的话用 *)。如果您忘了,’grep’会一直等着,直到该程序被中断。如果您遇到了这样的情况,按 ,然后再试。
    下面还有一些有意思的命令行参数:
    grep -i pattern files :不区分大小写地搜索。默认情况区分大小写,
    grep -l pattern files :只列出匹配的文件名,
    grep -L pattern files :列出不匹配的文件名,
    grep -w pattern files :只匹配整个单词,而不是字符串的一部分(如匹配’magic’,而不是’magical’),
    grep -C number pattern files :匹配的上下文分别显示[number]行,
    grep pattern1 | pattern2 files :显示匹配 pattern1 或 pattern2 的行,
    例如:grep "abc\|xyz" testfile 表示过滤包含abc或xyz的行
    grep pattern1 files | grep pattern2 :显示既匹配 pattern1 又匹配 pattern2 的行。
    grep -n pattern files 即可显示行号信息
    grep -c pattern files 即可查找总行数
    还有些用于搜索的特殊符号:\< 和 \> 分别标注单词的开始与结尾。
    例如:
    grep man * 会匹配 ‘Batman’、’manic’、’man’等,
    grep ‘\<man’ * 匹配’manic’和’man’,但不是’Batman’,
    grep ‘\<man\>’ 只匹配’man’,而不是’Batman’或’manic’等其他的字符串。

  

 

原文地址:https://www.cnblogs.com/joanna123/p/12182239.html

时间: 2024-10-15 18:32:21

grep命令 查找包含某内容的文件的相关文章

shell 命令 grep -R 查询包含指定内容的文件

grep -R 举个栗子,在有上百个sql文件的目录下,查找使用 spark引擎 执行的文件. 代码是: grep -R spark ./* 返回的就是包含  spark 的sql文件名. 原文地址:https://www.cnblogs.com/drjava/p/10712365.html

linux中查找包含指定内容的文件

##文件名+内容 grep -r "查询内容" 文件目录 ##只显示包含内容的文件名 grep -r -l "查询内容" 文件目录 ##文件名+内容 find 文件目录 -type f |xargs grep "查询内容"; eg: grep -r "version.app.xinyartech.com" /data/nginx/conf.d grep -r -l "version.app.xinyartech.co

《Linux学习并不难》Linux常用操作命令(14):grep命令查找文件中符合条件的字符串

8.14  <Linux学习并不难>Linux常用操作命令(14):grep命令查找文件中符合条件的字符串 使用grep命令可以查找文件内符合条件的字符串.          命令语法: grep [选项] [查找模式] [文件] 命令中各选项的含义如表所示. 选项 选项含义 -E 模式是一个可扩展的正则表达式 -F 模式是一组由断行符分隔的定长字符串 -P 模式是一个Perl正则表达式 -b 在输出的每一行前显示包含匹配字符串的行在文件中的字节偏移量 -c 只显示匹配行的数量 -i 比较时不

Linux下查找包含BOM头的文件和清除BOM头命令 2014-08-16 12:30:50

Linux下查找包含BOM头的文件和清除BOM头命令 2014-08-16 12:30:50 分类: 系统运维 查找包含BOM头的文件,命令如下: 点击(此处)折叠或打开 grep -r -I -l $'^\xEF\xBB\xBF' ./ \xef\xbb\xbf是UTF8 BOM的16进制表示 这个命令会把当前目录及所有子目录下的BOM头删除掉. 点击(此处)折叠或打开 find . -type f -exec sed -i 's/\xEF\xBB\xBF//' {} \; 另一种方法: 点击

Linux系统下用find命令查找最近修改过的文件

Linux系统下用find命令查找最近修改过的文件 学习了:http://www.cnblogs.com/hechunhua/p/4860544.html Find应用实例 查找最近30分钟修改的当前目录下的.php文件 find . -name '*.php' -mmin -30 查找最近24小时修改的当前目录下的.php文件 find . -name '*.php' -mtime 0 查找最近24小时修改的当前目录下的.php文件,并列出详细信息 find . -name '*.inc' -

用find命令查找最近修改过的文件

Linux的终端上,没有windows的搜索那样好用的图形界面工具,但find命令确是很强大的. 比如按名字查找一个文件,可以用 find / -name targetfilename . 唉,如果只知道名字,不知道地点,这样也不失为一个野蛮有效的方法. 按时间查找也有参数 -atime 访问时间 -ctime 改变状态的时间 -mtime修改的时间.但要注意,这里的时间是以24小时为单位的. 查看man手册后使用,你会很迷惑: -mtime n: Files data was last mod

Linux 查找当前目录下所有包含指定内容的文件

1.查找当前目录[./]中含用内容为zhang的所有文件 [[email protected] data]$ grep -rl zhang ./ ./a.txt ./b.txt 2.查找当前目录中含用内容为zhang的文件并将修改为"liu" [[email protected] data]$ sed -i "s/zhang/xxxx/g" `grep -rl zhang ./` 总结:sed -i "s/查找字符/替换字符/g" `grep 查

Linux下查找包含BOM头的文件和清除BOM头命令

find . -type f -exec sed -i 's/\xEF\xBB\xBF//' {} \;

(31)grep命令详解:查找文件内容

1.grep命令用于不需要列出文件的全部内容,而是从文件中找到包含指定信息的那些行. grep命令能够在一个或多个文件中,搜索某一特定的字符模式(也就是正则表达式),此模式可以是单一的字符.字符串.单词或句子. 正则表达式是描述一组字符串的一个模式,正则表达式的构成模仿了数学表达式,通过使用操作符将较小的表达式组合成一个新的表达式.正则表达式可以是一些纯文本文字,也可以是用来产生模式的一些特殊字符.为了进一步定义一个搜索模式,grep 命令支持如表 1 所示的这几种正则表达式的元字符(也就是通配