我是靠谱客的博主 淡然小鸽子,最近开发中收集的这篇文章主要介绍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

先搜文件再查找

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命令所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部