美文网首页Linux应用
grep命令的使用

grep命令的使用

作者: 一只烟酒僧 | 来源:发表于2020-04-24 17:13 被阅读0次

    参考文章:http://www.linuxso.com/command/grep.html#内含grep和egrep识别的正则符号列表

    一、概述

    grep 是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。Unix的grep家族包 括grep、egrep和fgrep。egrep和fgrep的命令只跟grep有很小不同。egrep是grep的扩展,支持更多的re元字符, fgrep就是fixed grep或fast grep,它们把所有的字母都看作单词,也就是说,正则表达式中的元字符表示回其自身的字面意义,不再特殊。linux使用GNU版本的grep。它功能 更强,可以通过-G、-E、-F命令行选项来使用egrep和fgrep的功能。
    从使用上讲,grep是三剑客中在书写表达式时最接近软件的一种软件。它不同于sed、awk可以使用代码或者语法做到不依赖固定参数进行文本操作,grep拥有灵活的参数系统,这样学习者可以摆脱代码的负担。

    二、原理

    grep命令在一个或多个文件中查找某个字符模式。grep将输出发送到屏幕,它不会对输入文件进行任何修改或变化。grep返回的退出状态为0,表示成功。退出状态为1,表示没有找到。如果找不到指定的文件,退出状态为2。
    grep可用于shell脚本,因为grep通过返回一个状态值来说明搜索的状态,如果模板搜索成功,则返回0,如果搜索不成功,则返回1,如果搜索的文件不存在,则返回2。我们利用这些返回值就可进行一些自动化的文本处理工作。
    注:如果这个模式中包含空格,就必须用引号把它括起来。grep命令中,模式可以是一个被引号括起来的字符串,也可以是单个词。位于模式之后的所有单词都被视为文件名。

    三、表达式

    grep [-abcEFGhHilLnqrsvVwxy][-A<显示行数>][-B<显示行数>][-C<显示列数>][-d<进行动作>][-e<范本样式>][-f<范本文件>][范本样式][文件或目录...]
    可以简单写作 grep [options] '正则表达式/表达式' 文件(s)

    四、参数

    常用参数

    -A<显示行数,如5> 或 --after-context=<显示行数> : 除了显示符合范本样式的那一行之外,并显示该行之后5行的内容。
    -B<显示行数> 或 --before-context=<显示行数> : 除了显示符合样式的那一行之外,并显示该行之前的内容。举例同上
    -C<显示行数> 或 --context=<显示行数>或-<显示行数> : 除了显示符合样式的那一行之外,并显示该行之前后的内容。举例同上
    -c 或 --count : 计算符合样式的行数。
    -d <动作> 或 --directories=<动作> : 当指定要查找的是目录而非文件时,必须使用这项参数,否则grep指令将回报信息并停止动作。<动作>is 'read', 'recurse', or 'skip'
    -e<范本样式> 或 --regexp=<范本样式> : 指定字符串做为查找文件内容的样式。
    -E 或 --extended-regexp : 将样式为延伸的正则表达式来使用。相当于egrep的功能
    -F 或 --fixed-regexp : 将样式视为固定字符串的列表。相当于fgrep的功能
    -i 或 --ignore-case : 忽略字符大小写的差别。
    -n 或 --line-number : 在显示符合样式的那一行之前,标示出该行的列数编号。
    -v 或 --revert-match : 显示不包含匹配文本的所有行。

    其它参数

    -a 或 --text : 不要忽略二进制的数据。
    -b 或 --byte-offset : 在显示符合样式的那一行之前,标示出该行第一个字符的编号。
    -f<规则文件> 或 --file=<规则文件> : 指定规则文件,其内容含有一个或多个规则样式,让grep查找符合规则条件的文件内容,格式为每行一个规则样式。
    -G 或 --basic-regexp : 将样式视为普通的表示法来使用。
    -h 或 --no-filename : 在显示符合样式的那一行之前,不标示该行所属的文件名称。
    -H 或 --with-filename : 在显示符合样式的那一行之前,表示该行所属的文件名称。
    -l 或 --file-with-matches : 列出文件内容符合指定的样式的文件名称。
    -L 或 --files-without-match : 列出文件内容不符合指定的样式的文件名称。
    -o 或 --only-matching : 只显示匹配PATTERN 部分。
    -q 或 --quiet或--silent : 不显示任何信息。
    -r 或 --recursive : 此参数的效果和指定"-d recurse"参数相同。
    -s 或 --no-messages : 不显示错误信息。
    -V 或 --version : 显示版本信息。
    -w 或 --word-regexp : 只显示全字符合的列。
    -x --line-regexp : 只显示全列符合的列。
    -y : 此参数的效果和指定"-i"参数相同。

    相关文章

      网友评论

        本文标题:grep命令的使用

        本文链接:https://www.haomeiwen.com/subject/vpnfwhtx.html