标签:linux bash grep 正则表达式 regexp
一、使用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 -n 1 | cut -d: -f1 user1 kdyzm@kdyzm:~$
本文出自 “狂盗一枝梅的博客” 博客,请务必保留此出处http://kdyzm.blog.51cto.com/8316029/1740318
标签:linux bash grep 正则表达式 regexp
原文地址:http://kdyzm.blog.51cto.com/8316029/1740318