[Linux]grep

grep 是 Linux 和 Unix 系统中用于搜索文本的强大工具。它可以在文件中搜索符合某种模式的文本,并将匹配的行输出。常见的用法包括正则表达式匹配、忽略大小写、递归搜索等。以下是一些常见的 grep 使用示例和选项:

基本用法#

  1. 搜索一个关键词:

    grep "pattern" filename
    

    例如,搜索文件 test.txt 中包含 "hello" 的行:

    grep "hello" test.txt
    
  2. 忽略大小写搜索:

    使用 -i 选项忽略大小写:

    grep -i "pattern" filename
    

    例如,搜索文件中忽略大小写的 "hello":

    grep -i "hello" test.txt
    
  3. 递归搜索目录中的所有文件:

    使用 -r 选项在目录中递归搜索:

    grep -r "pattern" directory/
    

    例如,递归搜索当前目录下的所有文件中包含 "error" 的行:

    grep -r "error" .
    
  4. 显示匹配行的行号:

    使用 -n 选项显示匹配文本所在的行号:

    grep -n "pattern" filename
    

    例如,显示包含 "error" 的行号:

    grep -n "error" test.txt
    
  5. 搜索整个单词:

    使用 -w 选项仅匹配整个单词,而不是单词的子串:

    grep -w "word" filename
    

    例如,搜索文件中只包含单词 "is" 的行,而不是包含 "this" 或 "history" 的行:

    grep -w "is" test.txt
    
  6. 显示匹配的行数:

    使用 -c 选项显示匹配的行数:

    grep -c "pattern" filename
    

    例如,统计文件中包含 "error" 的行数:

    grep -c "error" test.txt
    
  7. 显示不匹配的行:

    使用 -v 选项显示不匹配的行:

    grep -v "pattern" filename
    

    例如,显示文件中不包含 "error" 的行:

    grep -v "error" test.txt
    
  8. 匹配多个文件:

    可以搜索多个文件并显示文件名:

    grep "pattern" file1 file2 file3
    
  9. 使用正则表达式:

    grep 默认支持基本正则表达式,可以使用 -E 来启用扩展正则表达式(相当于 egrep):

    grep -E "pattern" filename
    

    例如,搜索 "cat" 或 "dog":

    grep -E "cat|dog" test.txt
    
  10. 统计匹配的次数:

    使用 -o 选项显示每个匹配的模式,并结合 wc -l 统计匹配的次数:

    grep -o "pattern" filename | wc -l
    

    例如,统计文件中 "error" 出现的次数:

    grep -o "error" test.txt | wc -l
    

结合其他命令#

  • sort 结合使用:搜索结果排序

    grep "pattern" filename | sort
    
  • find 结合使用:搜索多个文件类型

    find . -name "*.txt" | xargs grep "pattern"
    
  • awk 结合使用:搜索并处理匹配的内容

    grep "pattern" filename | awk '{ print $1 }'
    

这些是一些常用的 grep 命令示例。它可以与其他工具组合使用,适用于多种不同场景,非常灵活。

作者:Esofar

出处:https://www.cnblogs.com/DCFV/p/18402356

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

posted @   Duancf  阅读(13)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
more_horiz
keyboard_arrow_up dark_mode palette
选择主题
menu
点击右上角即可分享
微信分享提示