grep命令以及正则表达式

grep,正则表达式

#文件本过滤
grep
– –color=auto
– v #取反
– i #忽略大小写
– n #显示行号
– c #统计行数
– o #只显示匹配模式的字符
– q #静默模式
– A #找到所有的匹配行,并显示匹配行后N行
– B #找到所有的匹配行,并显示匹配行前面N行
– C #除了显示符合范本样式的那1列之外,并显示该列之前后的N行
– e #grep -e root -e bash /etc/passwd,或者
– w #匹配整个单词
– f #grep -f p_file,文件中存放要过滤的模式[包含]
– E #扩展正则表达式
– F #当于fgrep,不支持正则表达式
#数字+字母; 下划线+字母,在grep中都算做是单词
#正则表达式 REGEXP
正则表达式:BRE
元字符:字符匹配、匹配次数、位置锚定、分组
. 匹配任意单个字符
[] 匹配指定范围内的任意单个字符
[^] 匹配指定范围外的任意单个字符
[:alnum:] 字母和数字
[:alpha:] 代表任何英文大小写字符
[:lower:] 小写字母 [
[:blank:] 空白字符(空格和制表符
[:space:] 水平和垂直的空白字符,[包含回车和TAB键]
[:cntrl:] 不可打印的控制字符
[:digit:] 十进制数字 [:
[:graph:] 可打印的非空白字符
[:print:] 可打印字符
[:punct:] 标点符号
匹配次数:用在要指定次数的字符后面,用于指定前面的字符要出现的次数
* 匹配前面的字符任意次,包括0次
.* 任意长度的任意字符 #贪婪模式:尽可能长的匹配
\? 匹配其前面的字符0或1次
\+ 匹配其前面的字符至少1次
\{n\} 匹配前面的字符n次
\{m,n\} 匹配前面的字符至少m次,至多n次
\{,n\} 匹配前面的字符至多n次
\{n,\} 匹配前面的字符至少n次
#eg
echo axb |grep ax*b, echo axb |grep “ax*b”
echo “1a” |grep “[a-z]\+”
#.在中括号内,表示.本身,不需要转义
eg: echo “1.” |grep “[a-z.]\+”
ifconfig ens38 |grep -o “[0-9.]\{7,\}”
#取分区利用率
df |grep “sd[a-z]\+[1-9]\+” |grep -o “[0-9]\{1,3\}%” |grep -o “[0-9]\+” |sort -nr |head -n1
#位置锚定,对于grep的单词概念:字母、数字、下划线都算是单词
^
$
\< #锚定词首
\> #锚定词尾
\b,\b #表示词首或词尾
#分组
eg: echo “kingkingking” |grep “\(king\)\{3\}”
分组的引用:
\(string1\+\(string2\)*\)
\1 :string1\+\(string2\)*
\2 :string2
eg: grep “^\(.*\):.*/\1$” /etc/passwd
echo “rootaarbbt” |grep ‘\(r..t\).*\1’
echo “rootaaroot” |grep ‘\(r..t\).*\1’
echo “rootaarbbt” |grep ‘\(r..t\).*\(r..t\)’
#或者
| #grep “^\(a\|b\).*” /etc/passwd
eg:
echo axy |grep “\(a\|b\)xy” #过滤axy或bxy
echo axy |grep “a\|bxy” #过滤a或bxy
扩展正则表达式:ERE
扩展正则表达式
次数匹配:
*:匹配前面字符任意次
?: 0或1次
+:1次或多次
{m}:匹配m次
{m,n}:至少m,至多n次
位置锚定:
^ :行首
$ :行尾
\<, \b :语首
\>, \b :语尾
分组:
()
后向引用:\1, \2, …

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/95398

赞 (1)
凢洣阳光凢洣阳光
上一篇 2018-04-08 16:00
下一篇 2018-04-08 16:08

相关推荐

  • Linux第五周作业

    1、简述rpm与yum命令的常见选项,并举例 RPM: rpm命令:rpm  [OPTIONS]  [PACKAGE_FILE] 安装:-i, –install 升级:-U, –update, -F, –freshen 卸载:-e, –erase 查询:-q, –query 校验:-V, &#821…

    2018-07-16
  • Linux根文件系统和目录结构及bash特性

    1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示 cp命令:copy 源文件;目标文件; 单源复制:cp [OPTION]… [-T] SOURCE DEST 多源复制:cp [OPTION]… SOURCE… DIRECTORY cp [OPTION]… -t DIRECTORY S…

    2018-06-29
  • linux基础知识

    1、描述计算机的组成及其功能。 计算机由运算器、控制器、存储器、输入设备、输出设备五大部分组成: (1)运算器是完成各种算术运算和逻辑运算的装置,能进行加、减、乘、除等数学运算,也能作比较、判断、查找、逻辑运算等。 (2)控制器是计算机机指挥和控制其它各部分工作的中心,其工作过程和人的大脑指挥和控制人的各器官一样。控制器是计算机的指挥中心,负责决定执行程序的…

    2018-06-18
  • 进程和计划任务

    进程间的状态转化、以及与进程相关的配置命令和文件;作业管理和任务计划

    2018-05-04
  • Linux的tail 与head 命令

    head命令是用来查看具体文件的前面几行的内容,具体格式如下: head <filename>: 你可以通过head命令查看具体文件最初的几行内容,该命令默认是前10行内容,如果你想查看前面更多内容,你可以通过一个数字选项来设置,例如 head -20 install.log 通过上面命令你可以查看install.log这个文件前面20行的内容 …

    2018-04-16