grep命令

grep [Options] pattern File

pattern 加单引号,不会替换变量,所见即输出

pattern 加双引号,会替换变量

如果所说有字符串中有空格,需要单引号或双引号

  -E, --extended-regexp     PATTERN是扩展表达式
  -F, --fixed-strings       PATTERN是一行行固定串
  -G, --basic-regexp        PATTERN是基本正则表达式
  -P, --perl-regexp         PATTERN是Perl表达式
  -e, --regexp=PATTERN      使用PATTERN来匹配
  -f, --file=FILE           从文件获得PATTERN
  -i, --ignore-case         忽略大小写
  -w, --word-regexp         强制PATTERN匹配整个单词
  -x, --line-regexp         强制PATTERN匹配所有行
  -z, --null-data            空数据,非换行

  -s, --no-messages         压缩错误信息
  -v, --invert-match        反向匹配(不符合的)
  -V, --version             版本
 

grep正则表达式元字符集:
 ^ 锚定行的开始 如:'^abc'匹配所有以abc开头的行
$ 锚定行的结束 如:'abc$'匹配所有以abc结尾的行 
. 匹配一个非换行符的字符 如:'ab.c'匹配ab后接一个任意字符,然后是c
* 匹配零个或多个先前字符  .*一起用代表任意字符
 [] 匹配指定范围内的字符,如'[Aa]bc'匹配Abc和abc
[^] 匹配一个不在指定范围内的字符,如:'[^A-H]bc'匹配不包含A-H一个字母开头,后面跟bc的行
\(..\) 标记匹配字符,如'\(love\)'
\ 锚定单词的开始,如:'\abc匹配包含以abc开头的单词的行
\> 锚定单词的结束,如'abc\>'匹配包含以abc结尾的单词的行
x\{m\} 重复字符x,m次,如:'0\{5\}'匹配包含5个o的行

例子:

搜索多个字符串

grep -E "aaa|bbb|ccc" ./*

不区分大小写

grep [Aa]bc ./*

grep -i abc ./*

当前目录下查找含abc(不区分大小写)字符串

grep -ir abc ./*

统计含abc字符串的行数

grep -c abc  abc.txt

搜素带引号的字符串"string"

grep -r "\"string\""  ./*

搜素既带abc字符串又带defgh字符串的行

grep -r abc ./*  | grep defgh   >./a.txt

排除多个文件目录搜索

grep abcde . -rn --exclude-dir=".git" --exclude "*.img" --exclude "*.ko" --exclude "*.so" --exclude "*.o" --exclude "*.bin" --exclude "*.jpg" --exclude "*.png" --exclude "*.a" --exclude "*.apk"

先搜文件再查找

find . -name  filename.ext |xargs grep -i abcde

find . -name *.cpp -o -name *.c | xargs grep -i wifi

grep wifi -rn . --include "*.c" --include "*.h"

grep wifi -rn . --exclude "test*.c" --include "test*.h" 排除某些文件搜索

find ./ -regex ".*\.cpp\|.*\.c" | xargs grep wifi

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值