Grep 命令的15种常用用法(值得收藏)

  1. 在单个文件中查询指定字符串

    grep "literal_string" filename
    
  2. 多个文件中查找指定字符串,FILE_PATTERN 表示文件通配符表示。比如当前目录下的所有文件 ./*

    grep "string" FILE_PATTERN
    
  3. 查找的过程中忽略大小写

    grep -i "string" FILE
    
  4. 使用正则表达式来查找字符串。

    grep "REGEX" filename
    
    • ? 0到1次
    • * 0到多次
    • + 1到多次
    • {n} 之匹配n次
    • {n,} 最少n次
    • {,m} 最多m次
    • {n,m} 匹配最少n次,最多m次
  5. 匹配完整的单词,而不是子串。

    grep -iw "is" demo_file # 只会完整的匹配is这个单词
    
  6. 现在匹配字符串前面/后面/前后两边的字符串。(After/Before/Around)。

    grep -A 3 -i "example" demo_text # After 连着打印“example” 单词后的2行,共3行
    grep -B 3 -i "example" demo_text # Before 连着打印“example” 单词前的2行,共3行
    grep -C 3 -i "example" demo_text # Both 连着打印“example” 单词前后的2行,共5行
    
  7. 使用 GREP_OPTIONS 高亮grep的显示结果

    export GREP_OPTIONS='--color=auto' GREP_COLOR='100;8'
    # 或者别名一下
    alias grep='grep --color=auto'
    
  8. 使用 -r 参数来实现递归的搜索目录

    grep -r "ramesh" *
    
  9. 取反搜索结果

    grep -v "go" demo_text  # 显示哪些不包含 go 子串的行
    
  10. 取反(多个)指定模式的匹配结果

    grep -v -e "pattern1" -e "pattern2" filename # 显示不符合pattern1和pattern2的结果的数据
    
  11. 计算出命中匹配的总行数

    grep -c "pattern" filename # 6
    
  12. -l 只显示匹配命中的文件名称,而不显示具体匹配的内容。

  13. 只显示匹配中的字符串,而不是一行。

    $ grep -o "is.*line" demo_file  # 只显示 is 和 line 之间的字符串
    
  14. 显示匹配的字符串位置。该位置是相对于整个文件的字节位置,不是行数

    grep -o -b "pattern" file
    
  15. 使用 -n 显示匹配的字符串在文件中的行数

    grep -n "go" demo_text
    
  • 22
    点赞
  • 247
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值