• shell脚本之grep命令


    shell脚本之grep命令

    grep参数介绍

    grep 是一个在 Shell 脚本中常用的命令,用于在文本文件中查找匹配指定模式的行。它的基本语法如下

    grep [选项] 模式 [文件...]
    
    • 1

    其中,选项 是可选的,可以用来指定一些额外的参数,如忽略大小写、递归查找等;模式 是要查找的文本模式,可以使用正则表达式来定义;文件… 是要在其中查找的文件列表,可以指定多个文件,也可以使用通配符来匹配多个文件。

    下面是一些常用的 grep 选项:

    -i:忽略大小写进行匹配。
    -r:递归地查找目录中的文件。
    -v:反转匹配,输出不匹配模式的行。
    -n:显示匹配行的行号。
    -c:计算匹配行的数量。
    -l:仅输出包含匹配行的文件名。
    -L:仅输出不包含匹配行的文件名。
    -o:仅输出匹配到的部分。
    -q:静默模式,不输出任何信息。
    -A num:输出匹配行及其后面的 num 行。
    -B num:输出匹配行及其前面的 num 行。
    -C num:输出匹配行及其前后各 num 行。
    -e pattern:指定要查找的模式。
    -f file:从文件中读取模式,每个模式占一行。
    -E:使用扩展正则表达式。
    -F:将模式视为固定字符串而非正则表达式。
    -G:将模式视为基本正则表达式而非扩展正则表达式。
    -P:使用 Perl 兼容的正则表达式。
    -p:显示匹配行的内容前加上文件名。
    -h:不显示文件名。
    -H:在显示匹配行的内容时,将文件名放在每行的开头。
    -x:仅显示匹配模式的文件名。
    -s:不显示错误信息。
    -m num:仅显示前 num 个匹配结果。
    -b:仅显示匹配模式在文件中的位置,而非整行内容。
    -u:仅显示不重复的匹配结果。
    -U:将文件视为二进制文件处理。
    -a:将二进制文件视为文本文件处理。
    -I:忽略二进制文件中的匹配模式。
    -Z:在输出中包含文件的分隔符。
    –color=auto:对匹配结果进行颜色高亮显示。
    –exclude=pattern:排除与指定模式匹配的文件和目录。
    –include=pattern:仅搜索与指定模式匹配的文件和目录。
    –binary-files=type:指定如何处理二进制文件,可选值有 binary、without-match、text 和 without-match。
    –label=label:指定输入文件的标签,用于在输出中显示文件名。
    –line-buffered:使输出行缓冲,以便实时显示匹配结果。
    –null:在输出中使用空字符作为文件名分隔符,而不是换行符。
    –open-files=num:指定同时打开的文件数量上限。
    –parallel=num:在搜索时启用并行处理,指定并行处理的线程数。
    –recursive-limit=num:限制递归搜索的深度。
    –recursive-only:仅递归搜索目录,而非搜索文件内容。
    –textconv=program:指定用于转换二进制文件的程序。
    –version:显示 grep 命令的版本信息。
    –with-filename:在输出中包含文件名信息,即使使用了 -h 选项也会显示文件名。

    例子

    在文件中查找包含特定字符串的行:

    grep "search_string" file.txt
    
    • 1

    忽略大小写进行查找:

    grep -i "search_string" file.txt
    
    • 1

    递归查找多个文件中的匹配行:

    grep -r "search_string" directory/
    
    • 1

    计算匹配行的数量:

    grep -c "search_string" file.txt
    
    • 1

    仅输出包含匹配行的文件名:

    grep -l "search_string" directory/*
    
    
    • 1
    • 2
  • 相关阅读:
    力扣刷题 day47:10-17
    网课查题公众号搭建-附带查题接口
    Redis 分布式锁 @Klock 注解详解及使用教程
    ArcObjects SDK开发 008 从mxd地图文件说起
    Flask 框架:运用Echarts绘制图形
    LeetCode题目笔记——2486. 追加字符以获得子序列
    nginx 的学习报告
    Django之路由层
    常用数据库之sqlite的使用
    机器学习 泰坦尼克号——灾难中的机器学习
  • 原文地址:https://blog.csdn.net/techenliu/article/details/132889498