grep 订阅
grep (缩写来自Globally search a Regular Expression and Print)是一种强大的文本搜索工具,它能使用特定模式匹配(包括正则表达式)搜索文本,并默认输出匹配行。Unix的grep家族包括grep、egrep和fgrep。Windows系统下类似命令FINDSTR。 [1] 展开全文
grep (缩写来自Globally search a Regular Expression and Print)是一种强大的文本搜索工具,它能使用特定模式匹配(包括正则表达式)搜索文本,并默认输出匹配行。Unix的grep家族包括grep、egrep和fgrep。Windows系统下类似命令FINDSTR。 [1]
信息
最新版本
3.0 [3]
原作者
Ken Thompson [2]
公开时间
1974 [4]
外文名
Globally search a Regular Expression and Print
GREP基本简介
egrep和fgrep的命令只跟grep有很小不同。egrep和fgrep都是grep的扩展,支持更多的re元字符,fgrep就是fixed grep或fast grep,它们把所有的字母都看作单词,也就是说,正则表达式中的元字符表示回其自身的字面意义,不再特殊。linux使用GNU版本的grep。它功能更强,可以通过-G、-E、-F命令行选项来使用egrep和fgrep的功能。grep的工作方式是这样的,它在一个或多个文件中搜索字符串模板。如果模板包括空格,则必须被引用,模板后的所有字符串被看作文件名。搜索的结果被送到屏幕,不影响原文件内容。grep可用于shell脚本,因为grep通过返回一个状态值来说明搜索的状态,如果模板搜索成功,则返回0,如果搜索不成功,则返回1,如果搜索的文件不存在,则返回2。我们利用这些返回值就可进行一些自动化的文本处理工作。Grep命令中允许指定的串语句是一个规则表达式,这是一种允许使用某些特殊键盘字符的指定字符串的方法,这种方法中的特殊键盘字符可以用于代表其他字符也可以进一步定义模式匹配工作方式。例如:grep ".*hood" essay1。该命令将在文件essay1中搜索,显示出包含带有字符串hood的字的每一行。命令行中的点表示的是hood之前可以有任意字符,星号指的是在字符串之前点号所表示的任意字符可以有任意个(其中的双引号是可有可无的,但是当语句中包含短语或者空格时就必须加双引号)。 [5] 
收起全文
精华内容
下载资源
问答
  • grep

    千次阅读 2016-05-09 13:46:43
    linux grep命令 1.作用 Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限...

    1.作用
    Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。

    2.格式
    grep [options]

    3.主要参数
    [options]主要参数:
    -c:只输出匹配行的计数。
    -i:不区分大小写(只适用于单字符)。
    -h:查询多文件时不显示文件名。
    -l:查询多文件时只输出包含匹配字符的文件名。
    -n:显示匹配行及行号。
    -s:不显示不存在或无匹配文本的错误信息。
    -v:显示不包含匹配文本的所有行。
    pattern正则表达式主要参数:
    \: 忽略正则表达式中特殊字符的原有含义。
    ^:匹配正则表达式的开始行。
    $: 匹配正则表达式的结束行。
    \<:从匹配正则表达式的行开始。
    \>:到匹配正则表达式的行结束。
    [ ]:单个字符,如[A]即A符合要求 。
    [ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。
    。:所有的单个字符。
    * :有字符,长度可以为0。

    4.grep命令使用简单实例
    $ grep ‘test’ d*
    显示所有以d开头的文件中包含 test的行。
    $ grep ‘test’ aa bb cc
    显示在aa,bb,cc文件中匹配test的行。
    $ grep ‘[a-z]\{5\}’ aa
    显示所有包含每个字符串至少有5个连续小写字符的字符串的行。
    $ grep ‘w\(es\)t.*\1′ aa
    如果west被匹配,则es就被存储到内存中,并标记为1,然后搜索任意个字符(.*),这些字符后面紧跟着 另外一个es(\1),找到就显示该行。如果用egrep或grep -E,就不用”\”号进行转义,直接写成’w(es)t.*\1′就可以了。

    5.grep命令使用复杂实例
    假设您正在’/usr/src/Linux/Doc’目录下搜索带字符 串’magic’的文件:
    $ grep magic /usr/src/Linux/Doc/*
    sysrq.txt:* How do I enable the magic SysRQ key?
    sysrq.txt:* How do I use the magic SysRQ key?
    其中文件’sysrp.txt’包含该字符串,讨论的是 SysRQ 的功能。
    默认情况下,’grep’只搜索当前目录。如果 此目录下有许多子目录,’grep’会以如下形式列出:
    grep: sound: Is a directory
    这可能会使’grep’ 的输出难于阅读。这里有两种解决的办法:
    明确要求搜索子目录:grep -r
    或忽略子目录:grep -d skip
    如果有很多 输出时,您可以通过管道将其转到’less’上阅读:
    $ grep magic /usr/src/Linux/Documentation/* | less
    这样,您就可以更方便地阅读。

    有一点要注意,您必需提供一个文件过滤方式(搜索全部文件的话用 *)。如果您忘了,’grep’会一直等着,直到该程序被中断。如果您遇到了这样的情况,按 <CTRL c> ,然后再试。

    下面还有一些有意思的命令行参数:
    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 pattern1 files | grep pattern2 :显示既匹配 pattern1 又匹配 pattern2 的行。

    grep -n pattern files  即可显示行号信息

    grep -c pattern files  即可查找总行数

    3,常用grep实例

    (1)多个文件查询
        grep "sort" *.doc       #见文件名的匹配

    (2)行匹配:输出匹配行的计数
        grep -c "48" data.doc   #输出文档中含有48字符的行数

    (3)显示匹配行和行数
        grep -n "48" data.doc       #显示所有匹配48的行和行号

    (4)显示非匹配的行
        grep -vn "48" data.doc      #输出所有不包含48的行

    (4)显示非匹配的行
        grep -vn "48" data.doc      #输出所有不包含48的行

    (5)大小写敏感
        grep -i "ab" data.doc       #输出所有含有ab或Ab的字符串的行

    4, 正则表达式的应用

    (1)正则表达式的应用 (注意:最好把正则表达式用单引号括起来)
        grep '[239].' data.doc      #输出所有含有以2,3或9开头的,并且是两个数字的行

    (2)不匹配测试
        grep '^[^48]' data.doc      #不匹配行首是48的行

    (3)使用扩展模式匹配
        grep -E '219|216' data.doc

    (4) ...
        这需要在实践中不断应用和总结,熟练掌握正则表达式。

    5, 使用类名
    可以使用国际模式匹配的类名:
    [[:upper:]]   [A-Z]
    [[:lower:]]   [a-z]
    [[:digit:]]   [0-9]
    [[:alnum:]]   [0-9a-zA-Z]
    [[:space:]]   空格或tab
    [[:alpha:]]   [a-zA-Z]

    (1)使用
        grep '5[[:upper:]][[:upper:]]' data.doc     #查询以5开头以两个大写字母结尾的行

    明确要求搜索子目录:grep -r 或忽略子目录:grep -d skip 

    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 pattern1 files | grep pattern2 :显示既匹配 pattern1 又匹配 pattern2 的行。

    grep man * 会匹配 ‘Batman’、‘manic’、‘man’等, 
    grep '/<man' * 匹配‘manic’和‘man’,但不是‘Batman’, 
    grep '/<man/>' 只匹配‘man’,而不是‘Batman’或‘manic’等其他的字符串。 
    '^':指匹配的字符串在行首, 
    '$':指匹配的字符串在行尾, 


    展开全文
  • Linux中grep命令详解

    万次阅读 多人点赞 2019-04-07 21:48:40
    grep命令 grep 1.作用 Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限...

    grep命令    
        grep
        1.作用
        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的功能。
        2.格式及主要参数
        grep [options]
        主要参数:  grep --help可查看
            -c:只输出匹配行的计数。
            -i:不区分大小写。
            -h:查询多文件时不显示文件名。
            -l:查询多文件时只输出包含匹配字符的文件名。
            -n:显示匹配行及 行号。
            -s:不显示不存在或无匹配文本的错误信息。
            -v:显示不包含匹配文本的所有行。
            --color=auto :可以将找到的关键词部分加上颜色的显示。
        pattern正则表达式主要参数:
        \: 忽略正则表达式中特殊字符的原有含义。
        ^:匹配正则表达式的开始行。
        $: 匹配正则表达式的结束行。
        \<:从匹配正则表达 式的行开始。
        \>:到匹配正则表达式的行结束。
        [ ]:单个字符,如[A]即A符合要求 。
        [ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。
        .:所有的单个字符。
        *:所有字符,长度可以为0。
        3.grep命令使用简单实例
        itcast$ grep ‘test’ d*
        显示所有以d开头的文件中包含 test的行

        itcast $ grep ‘test’ aa bb cc
        显示在aa,bb,cc文件中匹配test的行。

        itcast $ grep ‘[a-z]\{5\}’ aa
        显示所有包含每个字符串至少有5个连续小写字符的字符串的行。

        itcast $ grep ‘w\(es\)t.*\1′ aa
            如果west被匹配,则es就被存储到内存中,并标记为1,然后搜索任意个字符(.*),这些字符后面紧跟着 另外一个es(\1),找到就显示该行。如果用egrep或grep -E,就不用”\”号进行转义,直接写成’w(es)t.*\1′就可以了。
        4.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’等其他的字符串。
        ‘^’: 指匹配的字符串在行首,
        ‘$’: 指匹配的字符串在行 尾,
        
        用grep查找结构体 grep -R "struct task_struct {" /usr/src 加-n可以显示行号
    PS1=$ 进入到家目录在.bashrc    中

    展开全文
  • grep -v grep

    千次阅读 2019-06-20 18:06:00
    1.grep 是查找含有指定文本行的意思,比如grep test 就是查找含有test的文本的行 2.grep -v 是反向查找的意思,比如 grep -v grep 就是查找不含有 grep 字段的行 我们想要找出哪个进程的id可以使用如下语段: ...
    1.grep 是查找含有指定文本行的意思,比如grep test 就是查找含有test的文本的行
    2.grep -v 是反向查找的意思,比如 grep -v grep 就是查找不含有 grep 字段的行
    
    我们想要找出哪个进程的id可以使用如下语段:
    ps -ef | grep "mongod" | grep -v "grep" | awk '{print $2}'
    

     

    ps -ef|grep /usr/local/tomcat_coachqa/ |grep -v grep |awk '{print $2}'|xargs kill -9

     出处:https://www.cnblogs.com/qianjinyan/p/9244746.html

     

    grep -v grep

     

    grep(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。

    -a 不要忽略二进制数据。
    -A<显示列数> 除了显示符合范本样式的那一行之外,并显示该行之后的内容。
    -b 在显示符合范本样式的那一行之外,并显示该行之前的内容。
    -c 计算符合范本样式的列数。
    -C<显示列数>或-<显示列数>  除了显示符合范本样式的那一列之外,并显示该列之前后的内容。
    -d<进行动作> 当指定要查找的是目录而非文件时,必须使用这项参数,否则grep命令将回报信息并停止动作。
    -e<范本样式> 指定字符串作为查找文件内容的范本样式。
    -E 将范本样式为延伸的普通表示法来使用,意味着使用能使用扩展正则表达式。
    -f<范本文件> 指定范本文件,其内容有一个或多个范本样式,让grep查找符合范本条件的文件内容,格式为每一列的范本样式。
    -F 将范本样式视为固定字符串的列表。
    -G 将范本样式视为普通的表示法来使用。
    -h 在显示符合范本样式的那一列之前,不标示该列所属的文件名称。
    -H 在显示符合范本样式的那一列之前,标示该列的文件名称。
    -i 忽略字符大小写的差别。
    -l 列出文件内容符合指定的范本样式的文件名称。
    -L 列出文件内容不符合指定的范本样式的文件名称。
    -n 在显示符合范本样式的那一列之前,标示出该列的编号。
    -q 不显示任何信息。
    -R/-r 此参数的效果和指定“-d recurse”参数相同。
    -s 不显示错误信息。
    -v 反转查找。
    -w 只显示全字符合的列。
    -x 只显示全列符合的列。
    -y 此参数效果跟“-i”相同。
    -o 只输出文件中匹配到的部分。


    grep match_pattern file_name
    grep "match_pattern" file_name

    使用正则表达式 -E 选项:
    grep -E "[1-9]+"
    或
    egrep "[1-9]+"


    grep "text" . -r -n
    # .表示当前目录。


    grep静默输出:
    grep -q "test" filename
    
    #不会输出任何信息,如果命令运行成功返回0,失败则返回非0值。一般用于条件测试。
    ------------------------- A little Progress a day makes you a big success... ----------------------------

    转载于:https://www.cnblogs.com/But-you/p/11060452.html

    展开全文
  • Linux 使用grep筛选多个条件

    万次阅读 2018-07-04 10:54:42
    !!!! grep 同时满足多个关键字和满足任意关键字 ① grep -E "word1|word2|word3" file....② grep word1 file.txt | grep word2 |grep word3 必须同时满足三个条件(word1、word2和word3)才匹配。 3.统计符合...

    !!!!

    grep 同时满足多个关键字和满足任意关键字

    ① grep -E "word1|word2|word3"   file.txt

       满足任意条件(word1、word2和word3之一)将匹配。

    ② grep word1 file.txt | grep word2 |grep word3

       必须同时满足三个条件(word1、word2和word3)才匹配。

    3.统计符合条件的个数

    *.log -------当前目录下所有以.log结尾的日志

    grep word1  *.log | grep word2 | wc -l 

    4.分页查看符合条件的内容

    grep word1 *.log | grep word2 | more

    不说废话, 例如需要排除 abc.txt 中的  mmm   nnn

    grep -v 'mmm\|nnn' abc.txt 

    但是这样还是很多,需要从这几条信息里面去找到所需要的 ip 地址,我们可能想到了使用 grep -v 屏蔽掉 inet6,结果如下:

    bash-3.2# ifconfig | grep inet | grep -v inet6
        inet 127.0.0.1 netmask 0xff000000
        inet 10.60.104.38 netmask 0xfffffe00 broadcast 10.60.105.255

    !!!!

     

    展开全文
  • grep命令

    万次阅读 2019-01-09 20:41:40
    grep 命令 简介  grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。  ...
  • ps -ef|grep cpu|grep -v grep   1、场景 在一个Linux机器上起了很多个cpu.sh的脚本,如下图,想一次性把他们kill掉 2、方法 2.1去除grep cpu 上图中可以看到最后一个pid为22603的进程是grep cpu进程,并非...
  • linux 命令 grep -v grep

    2019-09-10 11:12:44
    ps -ef|grep gogs | grep -v grep | wc -l 其中的grep -v grep 是干啥的呢 ? 很简单 ,为了去除包含grep的进程行 ,避免影响最终数据的正确性 。 比如 , [isTester@iZ94b31ttqsZ]~# ps -ef|grep gogs isTester...
  • Linux grep -v 命令排除输出

    万次阅读 2019-05-24 13:53:02
    有时候,我们在线上查日志定位问题的时候,经常会使用cat xxxx.log |grep yyyy命令,如果grep的时候,想排除某些字段,那么可以如下操作: cat test.log | grep "login"|grep -v "deviceType" 上面的命令的意思是:...
  • grep使用

    千次阅读 2017-06-01 21:48:48
    grep使用 grep的格式: grep可以接受标准输入,也可以从文本文件中读取数据.所以使用grep的时候,可以使用管道向grep传送数据,也可以直接在grep后面跟随文本文件. grep 字符串 file cat file |grep "字符串" ...
  • ps -ef | grep xxxserver | grep -v grep|wc -l

    千次阅读 2018-05-17 19:39:23
    ps -ef | grep xxxserver | grep -v grep|wc -l ps -ef 指令用来查询所有进程,grep通过管道来过滤。grep -v 是反向查询的意思,grep -v grep的作用是除去包含grep的项。
  • grep 命令

    千次阅读 2018-02-02 18:11:43
    grep 介绍 Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的打印出来。grep全称是global regular expression print(全面搜索正则表达式并行打印) grep的工作方式:它在一...
  • grep详解

    千次阅读 2017-07-19 11:21:43
    grep是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。 grep家族包括,grep,egrep和fgrep 原理 说说grep的原理吧? 在给出文件列表或标准输入后,grep会对匹配的一个或...
  • Linux命令:"grep -v grep"的作用 & 使用场景

    万次阅读 多人点赞 2019-06-18 17:46:00
    ps -ef|grep gogs | grep -v grep | wc -l 其中的grep -v grep 是干啥的呢 ? 很简单 ,为了去除包含grep的进程行 ,避免影响最终数据的正确性 。 比如 , [isTester@iZ94b31ttqsZ]~# ps -ef|grep gogs isTester....
  • grep -A 、grep -B、grep -C

    千次阅读 2017-03-20 09:46:32
    转自:最接近神的人grep -A :显示匹配行和之后的几行我经常用grep找东西,比如用户名和密码。大部分站点和用户名和密码都是在一样的,方便grep查找。有时,为了文本好看,我会放在多行。比如 wikipedia多个语言版本...
  • grep 精萃

    2015-10-29 09:13:19
    grep 精萃
  • grep -w和grep -e使用

    万次阅读 2017-08-06 00:09:28
    grep -w-w Does a word search. grep -w用于字符串精确匹配 若文件中的内容包括如下: 262 a3 262 26 如果 grep ‘26’ file,结果是三行全部都被显示 若要精确匹配26所在行 使用grep -w ‘26’ file ...
  • grep 命令详解

    千次阅读 2020-06-04 09:55:17
    Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。 2.格式 grep ...
  • cat log.txt | grep 条件;  cat log.txt | grep 条件一 | grep 条件二;  cat log.txt | grep 条件一 | grep 条件二 | grep 条件三; grep 条件一 log.txt | grep 条件二 | grep 条件三; 不说废话, 例如需要...
  • grep --help 可以查看到grep的中文用法介绍,显示如下。如果是使用man grep,显示的是英文的介绍。 用法: grep [选项]... PATTERN [FILE]... 在每个 FILE 或是标准输入中查找 PATTERN。 默认的 PATTERN 是一个...
  • grep命令详解

    万次阅读 2019-05-05 16:59:51
    grep命令是文本搜索命令,它可以正则表达式搜索文本,也可从一个文件中的内容作为搜索关键字。 grep的工作方式是这样的,它在一个或多个文件中搜索字符串模板。如果模板包括空格,则必须被引用,模板后的所有字符串...
  • grep指令

    千次阅读 2017-11-04 14:01:06
    grep在数据中查找一个字符串时,是以整行为单位来进行数据的选取的。3、语法: grep [选项] [–color=auto] ‘查找字符串’ filename4、常用选项: (1)-a:将binary文件以text文件的方式查找数据。 (2)-c:...
  • linux grep正则表达式与grep用法详解

    万次阅读 2018-02-05 15:04:29
    本文以grep为例来讲解正则表达式。 grep命令 功能:输入文件的每一行中查找字符串。 基本用法: grep [-acinv] [--color=auto] [-A n] [-B n] '搜寻字符串' 文件名 参数说明: -a:将二进制文档以...
  • vim grep

    2014-07-25 11:44:35
    :help grep 1. 内部 grep :vim :vimgrep vim {pattern} {file} eg:   vim dqbuf stack/**/*.c cmd ":set noic" , and then grep , will ignorecase to grep  vimgrep

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 168,922
精华内容 67,568
热门标签
关键字:

grep