【linux】grep 命令

Linux grep (global regular expression) 命令用于查找文件里符合条件的字符串或正则表达式。

grep指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设grep指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为-,则grep指令会从标准输入设备读取数据。

语法

grep [options] pattern [files]

grep [-abcEFGhHilLnqrsvVwxy][-A<显示行数>][-B<显示列数>][-C<显示列数>][-d<进行动作>][-e<范本样式>][-f<范本文件>][--help][范本样式][文件或目录...]
  • pattern: 表示要查找的字符串或正则表达式。
  • files: 表示要查找的文件名,可以同时查找多个文件,如果省略files参数,则默认从标准输入中读取数据。

用法示例

  1. 参数Ff
  • F表示确切匹配,对模式串不做任何转义。
    grep -F "*.a" filename
    

表示只找*.a这个字符串。

  • f表示从文件中读取模式串。文件中的每一个模式串独占一行。`
    grep -f keywords.txt filename
    
  1. 参数Cc
  • C表示上线文,后边跟数字,表示显示目标位置的前后多少行。
    grep -C 5 "hello" fileName
    
  • c表示统计匹配到了多少行。
    grep -c "hello" fileName
    
  1. 参数Aa
  • A表示匹配行之前需要显示多少行`。
    grep -A 3 "hello" fileName
    
  • a表示将所有的内容当作纯文本处理,例如二进制的字符也会被当作文本来匹配。与--text等效。
    grep -a "10101" binaryText
    
  1. 参数Bb
  • B表示匹配行之后显示多少行。
     grep -B 3 hello fileName
    
  • b表示匹配行行首位置的偏移量,即匹配行到开始位置的字节量。
    grep -b "hell0" filename
    
  1. 参数d
    用于控制如何处理目录。
  • -d skip:不对目录进行搜索。
  • -d recurse:递归搜索目录。
  1. 参数Ee
  • grep -Eegrep等效。
  • e使用正则进行匹配。主要使用多个正则。
     grep -e ^hello -e hello$ filename
    
  1. 参数Hh
  • H显示匹配的文件。
  • h不显示匹配的文件。
  1. 参数Ll
  • L列出未匹配的文件名称。
  • l列出匹配的文件名称`。
  1. 参数Vv
  • V显示版本信息。
  • v反向匹配。
  1. 参数yi
    都是忽略大小写。
  2. 参数xw
  • x把模式串当作一整行,检查是否能匹配。
  • w匹配单词。
  1. 参数onqrs
  • o只显示匹配的部分。
  • n显示匹配的行号。
  • q不显示任何信息,可以检查是否匹配了。
  • r递归搜索。
  • s不显示错误信息。

相关推荐

  1. Linux命令:stat命令

    2024-03-21 16:08:02       30 阅读
  2. Linux命令:watch命令

    2024-03-21 16:08:02       11 阅读
  3. 命令模式(命令)

    2024-03-21 16:08:02       7 阅读
  4. git 命令

    2024-03-21 16:08:02       28 阅读
  5. RabbitMQ 命令

    2024-03-21 16:08:02       44 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-21 16:08:02       14 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-21 16:08:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-21 16:08:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-21 16:08:02       18 阅读

热门阅读

  1. 【AI】计算机视觉是什么

    2024-03-21 16:08:02       21 阅读
  2. Linux运维_Bash脚本_编译安装PHP-7.4.28

    2024-03-21 16:08:02       18 阅读
  3. Rust字符串深入理解

    2024-03-21 16:08:02       14 阅读
  4. go语言请求http接口示例 并解析json

    2024-03-21 16:08:02       18 阅读
  5. 如何使用PL/SQL工具批量导出表、存储过程、序列

    2024-03-21 16:08:02       19 阅读