Charla miscelánea de Linux sobre grep

un  grep

说明: 本文基于'man grep、info grep'结合'实际案例'讲解

后续: 对比不同'grep版本'的差异性

强调: grep是针对'file'中的'字符串'进行匹配

补充: grep 利用'RER、PCRE'正则风格进行'功能'增强

grep manual oficial    grep para GUN

①  sinaxis de grep 

关注点: 'OPTIONS'、'PATTERN'

②  Selección de Matcher Selección del método de coincidencia

讲解: grep的正则模式'流派'

可读性: 推荐使用'PCRE'、其次是'ERE','禁止'使用'默认'的'BRE'

Serie regular de BRE

掌握: -P、-E、-i 这'三个'选项'即可',重点关注'-P'选项

③   Control de coincidencia Control de coincidencia

核心关注:'-i'、'-w'、'-x'、'-v'这四个选项

④   Control general de salida Control general de salida

常用: 'grep -rl'、'-o'、'-m [在匹配到NUM行后停止读取文件]'

⑤   Control de prefijo de línea de salida control de prefijo de línea de salida

⑥   Control de línea de contexto Control de línea de contexto

需求: 使用'空行'作为 grep 的上下文'组分隔符'

--group-separator=""

理解: '-A'、'-B'、'-C'的含义

⑦    Selección de archivos y directorios Selección de archivos y directorios

常用: grep -r --exclude=GLOB

⑧Variables ambientales 

关注: GREP_OPTIONS、GREP_COLOR、GREP_COLORS

--color参数可以选择never '永不高亮', always '总是高亮',auto '视场景高视'

tinción grep

export GREP_COLOR='a;b' #默认是1;31,即高亮的红色; 您可以根据自己的喜好设置不同的颜色;

'a' 可以选择:【0,1,4,5,7,8】

0 关闭所有属性  1 设置'高亮度'  4 下划线

5 闪烁         7 反显         8 消隐

'b' 可以选择:【30-37或40-47】

30 black  --> "黑色"  31 red   --> "红色"  32 green  --> "绿色"

33 yellow --> "黄色"  34 blue  --> "蓝色"  35 purple --> "紫色"

36 cyan   --> "青色"  37 white  --> ""

30 - 37 设置'前(before)'景色

40 - 47 设置'背(background)'景色

⑨  Explicación del caso

需求1: '实时'过滤日志中的'关键字' --> "重点"

形式: tail -f access.log | grep -Eni 'wzj'

备注: 'tailf' 同 'tail -f'

需求2: '关键字'自定义颜色

export GREP_COLOR="01;34"

export GREP_COLOR="01;33;45"

需求3: 获取'实体网卡'的ip

备注: 利用PCRE'正则'的特性

需求4: 理解'整行'匹配的含义  --> '-x'

需求5: 获取'PATTERN'匹配的 only '文本'字符串

grep -Po  --> 只显示 access.log日志中的'状态码'

默认: 不指定'-o'选项,会将匹配的字符串'高亮'显示,并打印输出'该行'

-o选项可以使grep只输出'搜索结果的匹配'部分

需求6: 不区分'大小'写

  

需求7: '取反'操作

需求8: grep'递归'搜索文件内容

 1) 案例1: 在一个'目录及其子目录'下面搜索'某个字符串'

 2) 案例2: grep'递归'搜索文件内容时'忽略'指定格式文件

备注: --directories=recurse  '<==>'  -r  '递归'搜索

grep excluye archivos    estudio de caso grep

需求9: '-c' 选项可以使grep计算'指定字符串'出现的'次数'

需求10: '-l' 选项'只输出'匹配文件的'文件名','不'输出匹配'内容'

需求11: 显示匹配'模式PATTERN'的字符串的'上下文'

备注: 理解'-A、-B、-C' 与 '--group-separator='的关系

需求12: grep 如何'不显示'自身

​方法1:

   ps -ef | grep java | grep -v grep

方法2: --> "推荐"

   ps -ef | grep [j]ava

解读: ps -ef | grep java的时候

  1、grep'本身的进程'是grep java,所以grep本身'也会'显示出来

  2、而'ps -ef | grep [j]ava'的时候

  3、grep'本身的进程'是grep [j]ava,所以grep本身'不会'显示出来

原理:利用了'参数展开'的问题,[j]ava作为grep的参数展开为java,作为'shell参数'则不展开

⑩  familia grep

命令集: pgrep、fgrep、egrep、'zgrep'

zgrep是一个用于搜索'压缩文件'中的字符串或模式的命令  --> gzip------->'.gz'

特点: zgrep则是'在压缩文件中'查找字符串,'不需要解压'就可以操作

tar tf xxxxx.tgz | grep xxxx '文件名关键字'

zcat access0906.tgz | more  --> "查看压缩历史日志的内容"

Mecanismo zgrep     || y && condiciones del    resumen del comando grep zcat

13 casos de grep

Supongo que te gusta

Origin blog.csdn.net/wzj_110/article/details/132701429
Recomendado
Clasificación