Linux系统中的shell脚本编写之文本处理三剑客中的grep
文本处理工具——grep
1.作用
Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。
grep家族包括grep、egrep和fgrep。egrep和fgrep的命令只跟grep有很小不同。egrep是grep的扩展,支持更多的re元字符,fgrep就是fixed grep或fast grep,它们把所有的字母都看作单词,也就是说,正则表达式中的元字符表示回其自身的字面意义,不再特殊。linux使用GNU版本的grep。它功能更强,可以通过-G、-E、-F命令行选项来使用egrep和fgrep的功能。
2.格式及主要参数
grep 匹配条件 处理文件
主要参数: grep --help可查看
grep root passwd 过滤root关键字
grep ^root passwd 过滤以root开头的关键字
gerp root$ passwd 过滤以root结尾的关键字
grep -i root passwd 忽略文件中的大小写
grep -E "\<root" passwd 过滤root字符之前不能有字符的文件
grep -E "root\>" passwd 过滤root字符之后不能有字符的文件
gerp -数字 显示过滤行以及上面和下面几行内容
grep -n 显示匹配行所在行的行号
grep -A 显示过滤行及下面几行
grep -B 显示过滤行及上面几行
grep -v 反向过滤
3.grep字符数量匹配规则
匹配字符 | 含义 |
^westos | 以westos开头的 |
westos$ | 以westos结尾的 |
w....s | 以w开头s结尾的中间有4个字符的内容 |
.....s | 以s结尾的前面5个字符任意 |
* | 字符出现0到任意一次 |
? | 字符出现0到1次 |
+ | 字符出现1到任意一次 |
{n} | n次 |
{m,n} | m到n次 |
{0,n} | 0到n次 |
{,n} | 0到n次 |
{m,} | 最少m次 |
(lee){2} | Lee字符串出现2次 |
操作如下:
练习:在系统中列出所有能够使用的用户名称 系统中能够使用的用户的家目录最后一般都是以bash,sh,csh,tcsh,tmux 结尾