加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

【Linxu学习008】grep和正则表达式

发布时间:2020-12-14 04:34:40 所属栏目:百科 来源:网络整理
导读:一、使用grep命令打印匹配的行 grep命令是一个文本搜索命令,能够从指定的“源”搜索匹配串所在的行并将其打印到控制台。 grep命令本身并没有什么特别需要注意的使用事项,但是由于其依赖于正则表达式,所以是一个非常复杂的命令,其重点也都在正则表达式上

一、使用grep命令打印匹配的行

grep命令是一个文本搜索命令,能够从指定的“源”搜索匹配串所在的行并将其打印到控制台。

grep命令本身并没有什么特别需要注意的使用事项,但是由于其依赖于正则表达式,所以是一个非常复杂的命令,其重点也都在正则表达式上了。

grep常用选项:

grep
--color:将匹配到的所有字符都高亮显示
-i:忽略大小写
-v:显示所有没有匹配到的行
-o:只显示被匹配到的串

关于正则表达式的详细使用说明在线文档:http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html

使用示例

kdyzm@kdyzm:~$grep"kdyzm"/etc/passwd
kdyzm:x:1000:1000:kdyzm,:/home/kdyzm:/bin/bash
kdyzm@kdyzm:~$

二、正则表达式相关

1.

.
任意单个字符
* 表示匹配其前面的字符任意次数
? 匹配其前面的字符次数一次或者零次
{m,n} 匹配其前面的字符最少m次,最多n次
{m,} 匹配其前面的字符最少m次
{0,3} 匹配其前面的字符最多三次
^
锚定字符,后面出现的第一个字符必须在行首
$ 锚定字符,前面出现的第一个字符必须出现再行尾
^$ 空白行
[] 匹配指定范围内的任意单个字符
[^]
匹配指定范围外的任意单个字符
&; 其后面的字符必须作为单词的首部出现
&; 其前面的字符必须作为单词的尾部出现
b
可以使用b代替&;或者&;
() 可以将内容分组,实现分组的重要作用就是能够很方便的实现后向引用

2.一些有特殊含义的单词及其格式

[:alnum:][:cntrl:][:lower:][:space:]
[:alpha:][:digit:][:print:][:upper:]
[:blank:][:graph:][:punct:][:xdigit:]

三、正则表达式练习

1.打印出所有使用/bin/bash的用户名列表

kdyzm@kdyzm:~$grep"/bin/bash$"/etc/passwd|cut-d:-f1
root
kdyzm
user1
kdyzm@kdyzm:~$

2.打印出所有使用/bin/bash同时其id最大的用户名

kdyzm@kdyzm:~$grep"/bin/bash$"/etc/passwd|sort-r-n-t:-k3
|head-n1|cut-d:-f1
user1
kdyzm@kdyzm:~$

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读