grep正则表达式


grep的正则表达式(regexp)

1、grep程序:

Linux下有文本处理三剑客 –grep sed awk

grep:文本 行过滤工具

Sed:文本 行生成器

awk:报告生成器(做文本输出格式化)

grep:包含三个命令:grep egrep fgrep ,它是用来进行模式(pattern)匹配的

egrep =grep –E//使用文件通配符进行匹配

*grep默认使用正则表达式进行文本匹配

grep的用法:

grep[option]…PATTERN[filename]

grep的常见选项:

-E 支持使用扩展的正则表达式(ERE)

-P 使用perl语言的正则表达式引擎(每一种语言的正则表达式引擎都不相同,甚至sed grep awk 使用的regexp引擎也不相同)

-i 忽略大小

-v 进行反选

-o 仅仅输出匹配的内容(默认输出的是匹配到的行)

--color=auto 语法着色

-n 显示行号

-w //匹配固定单词

PATTERN—正则表达式:

作用:通过一些特殊字符,来表达一类字符内容,然后交给前面的命令来执行;如果使用特使字符本身的含义,就需要\进行转义;

回顾:文件通配符(globbing): *? [ ] [ ^ ]

1、字符匹配

. 任意一个字符 ?

[ ] 匹配范围内的任意一个字符

[ ^ ] 范围外任意一个字符

[0-9] [:digit:][: alnum:][:alpha:][:lower:][:upper:][:space:][:punct:]

2、次数匹配

* 匹配前面的(紧挨着的)字符0次到n次

?匹配前面的字符0次到1次

+ 匹配前面的字符1次到n次

\{m\} 匹配前面的字符m次 例:a\{7\} aaaaaaa

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

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

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

3、位置锚定

^锚定行首

$锚定行尾

\b 锚定词首和锚定词尾

\>锚定词尾

\<锚定词首 <root/>

4、分组

Abc* abccc abc我们要看成一个整体

\(\)示例:\(abc\)* abcabcabc abcccc

**分组特性:默认情况下,Linux系统会为系统指定变量,变量表示形式\1\2\3…

例如:\(+\)

ip地址: 0-255.0-255.0-255

0-255

2 0-4 0-9[0-4][0-9]

2 5 0-5 25[0-5]

练习:

1、显示/proc/meminfo文件中大小s开头行

/grep –I “/^s” /proc/meminfo

2、显示/etc/passwd文件中不以/bin/bash结尾的行

/grep –v’’/bin/bash$” /etc/passwd

3、显示/etc/passwd文件中UID号最大的用户的用户名

sort –n –t: -k3 /etc/passwd |tail -1 |cut –d: -f1

4、如果用户root存在,显示其默认的shell程序

grep “^root\>” /etc/passwd&> /dev/null&&grep “root\>” /etc/passwd|cut –d: f7

id root &> /dev/null&&grep “^root\>”/etc/passwd|cut d: -f7

5、找出/etc/passwd中的两位或三位

grep”[0-9]\{2-3\}” /etc/passwd

-w //匹配固定单词

\<[0-9]\{2,3\}\>

\b[0-9]\{2,3\}\b

-n 以数字进行排序.*任意字符

优质内容筛选与推荐>>
1、人生的价值在于对社会有用
2、noi.ac day6t3 color
3、HADOOP+ZOOKEEPER集群安装
4、简单的用js打印乘法口诀表
5、领域驱动设计和开发实战


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号