grep选取命令&正则表达式

《鸟哥的Linux私房菜》学习笔记之grep

选取命令就是将一段数据经过分析后,取出我们想要的,或是经过分析关键词,取得我们所想要的那一行,一般针对一行数据来分析

  1、grep简单语法

    grep [-acinv] [--color=auto] '查找字符' filename

grep语法
-a 将二进制文件以文本文件的方式查找数据
-c 计算找到'查找字符'的次数
-i 忽略大小写的不同
-n 索性顺便输出行号
-v 反向选择,显示没有'查找字符'的那些行
--color=auto 将找到的关键字部分加上颜色显示

  2、正则表达式

    正则表达式是处理字符串的方法,它以行为单位来进行字符串的处理操作,正则表达式通过一些特殊符号的辅助,可以让用户轻易地完成【查找、删除、替换】某个特定字符串的处理过程

    正则表达式基本上是一种【表示法】,只要程序支持这种表示法,那么该程序就可以用来作为正则表达式的字符串处理之用

正则特殊符号
[:alnum:] 英文大小写及数字,0-9、a-z、A-Z
[:alpha:] 大小写字母,a-z、A-Z
[:lower:] 小写字符,a-z
[:upper:] 大写字符,A-Z
[:digit:] 数字,0-9
[:graph:] 除了空格符(空格与【tab】)以外的所有按键
[:cntrl:] 控制按键,CR(回车)、LF、Tab、Del等
[:blank:] 空格与【tab】
[:print:] 任何可以被打印的字符
[:punct:] 标点符号
[:space:] 空白字符,空格、【tab】、CR等
[:xdigit:] 十六进制的数字类型,0-9、a-f、A-F

  3、grep的一些高级选项

    grep [-A] [-B] [--color=auto] '查找字符' filename

grep高级选项
-A after,除了列出该行外,后续的n行号也列出来
-B before,除了列出该行外,前面的n行号也列出来
--color=auto 对关键字显色

  4、基础正则表达式字符集合

基础正则表达式字符集合
^word

待查找的关键字在行首

扫描二维码关注公众号,回复: 11222830 查看本文章

查找行首为#开始的一行,并列出行号

grep -n "^#" filename

word$

待查找的关键字在行尾

查找行尾为!的行,并列出行号

grep -n "!$" filename

.

代表一定有一个任意字符

查找字符串可以是【eve】、【eae】、【eee】,但不能仅有【ee】

grep -n "e.e" filename

\

转译符,将特殊符号的特殊意义去除

查找含有单引号'的行

grep -n \' filename

*

重复零个或者无穷多个的前一个RE字符

查找【es】、【ess】、【esss】等的关键字,至少一个s

grep -n "ess*" filename

[list]

字符集合的RE字符,里面列出想要选取的字符,仅代表一个待查的字符

查找含有【gl】或者【gd】的行

grep -n "g[ld]" filename

[n1-n2]

字符集合的RE字符,里面列出想要选取的字符

查找含有大写字母的行

grep -n "[A-Z]" filename

[^list]

取非

查找【ooa】、【oob】等,但不要【ooc】

grep -n "oo[^c]" filename

\{n,m\}

连续n到m个前一个字符

若为\{n\}则代表n个前一个字符

若为\{n,\}则代表最少n个前一个字符

查找g与g之间2到3个o存在的字符串,即【goog】、【gooog】

grep -n "go\{2,3\}g" filename

鸟哥私房菜链接http://linux.vbird.org/linux_basic_train/unit03.php

猜你喜欢

转载自www.cnblogs.com/wangchenwei/p/12914010.html