linux文本处理工具2-grep

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux文本处理工具2-grep相关的知识,希望对你有一定的参考价值。

grep  文本搜索工具:

    grep [options]  pattern [file...]           --      pattern 模式: 字符串,正则表达式

根据用户指定的"模式"对目标文本逐 进行匹配检查;打印匹配到的行
          pattern模式:由正则表达式字符及文本字符所编写的过滤条件。

技术分享图片

技术分享图片

技术分享图片

技术分享图片

#===============================

grep 命令选项

--color=auto: 对匹配到的文本着色显示

技术分享图片

-v: 显示不被pattern匹配到的行 -- 取反

技术分享图片

-i: 忽略字符大小写

技术分享图片

-n:显示匹配的行号

技术分享图片

技术分享图片

-c: 统计匹配的行数

技术分享图片

-o: 仅显示匹配到的字符串    /显示搜索到的字符串

技术分享图片

-q: 静默模式,不输出任何信息-- grep root /etc/passwd &>/dev/null

技术分享图片

-A #: after, 后#行   -  root 后三行 以root 做参照物

技术分享图片

-B #: before, 前#行

技术分享图片

小操作: 查看公司运行/占用的IP 地址?

技术分享图片

-C #:context, 前后各#行

技术分享图片

-e:实现多个选项间的逻辑or关系

技术分享图片

grep –e ‘cat ’ -e ‘dog’ file

  -- 并且 关系

技术分享图片

-w:匹配整个单词

技术分享图片

-E:使用ERE     -F:相当于fgrep,不支持正则表达式

#=====================================

元字符分类:字符匹配、匹配次数、位置锚定、分组

------------------------------------------------------------------------

基本正则表达式 元字符

1)字符匹配:
 . 匹配任意单个字符

技术分享图片

[] 匹配指定范围内的任意单个字符

技术分享图片

[^] 匹配指定范围外的任意单个字符

技术分享图片

[:alnum:] 字母和数字

技术分享图片

[:alpha:] 代表任何英文大小写字符,亦即A-Z, a-z

技术分享图片

[:lower:] 小写字母[:upper:] 大写字母

技术分享图片

[:blank:] 空白字符(空格和制表符)

[:space:]水平和垂直的空白字符(比[:blank:]包含的范围广)
[:cntrl:] 不可打印的控制字符(退格、删除、警铃...)
[:digit:] 十进制数字[:xdigit:]十六进制数字
[:graph:] 可打印的非空白字符
[:print:] 可打印字符
[:punct:] 标点符号

#===================================

获取6.9 版本 和7.4版本的版本号是多少? 如果版本是17 版怎么办?

技术分享图片技术分享图片

技术分享图片

#======================================

匹配次数:用在要指定次数的字符后面,用于指定前面的字符要出现的次数
  * 匹配前面的字符任意次,包括0次  贪婪模式:尽可能长的匹配

   技术分享图片

  .*任意长度的任意字符  --记住: r 开头的 任意字符 任意长度

技术分享图片

a* 当成通配符 访问文件名  |  "a*"   ‘a*‘ 用正则 引起来

技术分享图片

技术分享图片

小结: grep a* anaconda-ks.cfg   默认当成通配符搜索 为什么呢 a* 和 anaconda-ks.cfg

都是a开头 ,如果 是 b*  别的就会搜索anaconda-ks.cfg 的文本 , 保险起见 ,还是加上

"" ‘‘   当然 如果用/root/anaconda-ks.cfg 也就无所谓了.  | 加上引号吧

技术分享图片

  \?匹配其前面的字符0或1次  --   写法可有可无  无线循环  匹配多次

技术分享图片

技术分享图片

  \+匹配其前面的字符至少1次

技术分享图片

  \{n\}匹配前面的字符n次

技术分享图片

  \{m,n\}匹配前面的字符至少m次,至多n次  | 匹配多次

技术分享图片

  \{,n\}匹配前面的字符至多n次 |0-5 0-5.... 多次匹配

技术分享图片

  \{n,\}匹配前面的字符至少n次

技术分享图片

#===============================================

位置锚定:定位出现的位置
^ 行首锚定,用于模式的最左侧


$ 行尾锚定,用于模式的最右侧
^PATTERN$ 用于模式匹配整行
^$ 空行
^[[:space:]]*$ 空白行
\< 或\b词首锚定,用于单词模式的左侧
\> 或\b词尾锚定;用于单词模式的右侧
\<PATTERN\>匹配整个单词

本文出自 “linux-Mylog” 博客,谢绝转载!

以上是关于linux文本处理工具2-grep的主要内容,如果未能解决你的问题,请参考以下文章

Shell文本处理工具(Linux三剑客 grep sed awk )

Linux命令进阶:grep,sed,awk全家桶(文本处理技术详例)

Linux命令进阶:grep,sed,awk全家桶(文本处理技术详例)

2.6-grep及正则表达式

grep与正则表达式

学习shell第四天