概述
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
先搜文件再查找
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"
find ./ -regex ".*.cpp|.*.c" | xargs grep wifi
最后
以上就是淡然小鸽子为你收集整理的grep命令的全部内容,希望文章能够帮你解决grep命令所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复