grep命令备忘

1 grep简介

NAME
       grep, egrep, fgrep, rgrep - print lines that match patterns

grep [options] PATTERN [FILE...]
grep [options] [-e PATTERN | -f FILE] [FILE...]

定义:打印匹配模式的行;

描述:Grep 能理解两种不同版本的正则表达式语法:“basic” 和 “extended”。在
​ GNU grep 中,两种语法可以实现的功能是没有区别的。在其他实现中,基本
​ (basic) 正则表达式表达能力要弱一点。下面的描述适用于扩展的 (extended)
​ 正则表达式,它与基本正则表达式的区别会在最后做一个总结。

2 基本使用技巧

  • 单个文件中检索:
grep match_pattern file_name
grep "match_pattern" file_name
  • 多个文件中检索
grep "match_pattern" file_name1 file_name2 file_name3
  • 使用正则表达式
echo "a111b1111c11111d11111" | egrep "[1]{5}"
##
echo "a111b1111c11111d11111" | grep -E "[1]{5}"
  • 排除检索
grep -v "match_pattern" file1
  • 检索颜色标记
grep "match_pattern" file_name --color=auto
  • 统计匹配行数 -c
grep -c "text" file_name

3 进阶技巧1-递归搜索文件夹(包含、排除)

#### 1 递归检索匹配
grep "test" . -r -n
#### 2 只在java文件和c文件中递归搜索含有main()的文件
grep "main()" . -r --include *.{c,java}
#### 3 排除文件搜索
grep "main()" . -r --exclude "README"

4 进阶技巧2-grep显示选项

#### -A 显示匹配结果后三行
grep "match_pattern" file1 -A 3
#### -B 显示匹配结果前三行
grep "match_pattern" file1 -B 3
#### -C 显示匹配结果前三行
grep "match_pattern" file1 -B 3 -A 3
grep "match_pattern" file1 -C 3

5 进阶技巧3-静默输出

不会输出任何信息,如果命令运行成功返回0,失败则返回非0值。一般用于条件测试。

grep -q "test" filename

6 进阶技巧4-检索偏移结果

  • 计算偏移位数 -b 通常与-o合用;
fwd@fwd:~$ echo "a111b1111c11111d111111" | egrep -b -o "[1]{6}"
16:111111
  • 只打印匹配内容 -o 只显示匹配的行中与 PATTERN 相匹配的部分。
fwd@fwd:~$ echo "a111b1111c11111d111111" | grep -E -o "[1-9]{6}"
111111

7 进阶技巧5-匹配多个选项

#### 1- -e使用多个匹配项目,匹配任何一个就成功
echo "Hello! My Name is Jack" | grep -e "My" -e "Jack"

8 组合实战1-与find何用找指定文件匹配字符串

#### 1-在当前面目录搜索md文件,并检索打印包含test文件的文件名和行号等信息;
find . -type f  -regex "*.md" -print0 | xargs -0 grep -Hn -i --color "test"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值