成功的秘诀很简单=开始+坚持
接下来介绍grep和基本的正则表达式:
当大家需要从某个文本中,或者信息中检索数据时就要用上grep了
先介绍下grep的基本语法
grep[options]‘pattern’file
常用选项:
-i不区分字符大小写;
-v反向选取,只显示不匹配模式的行;
-o只显示被模式匹配到的字符串
-E使用扩展的正则表达式grep-E=egrep
--color=auto把匹配到的项,显示红色。
常用的也就这几个,如果大家要获取更多,请自行mangrep。
元字符的介绍:
^行首锚定符,用法格式"^pattern"
$行尾锚定符,用法格式"pattern$"
.匹配任意单个字符
*匹配紧挨在其前面的字符任意次
.*匹配任意长度的任意字符
[]匹配指定范围内的任意单个字符
\?匹配紧挨在其前面的字符0次或1次
\{m,n\}匹配其前面的字符至少m次至多n次
\{0,n\}至多n次
\{m,\}至少m次
\{m\}精确m次
\<锚定词首,用法格式:\<pattern
\>锚定词尾,用法格式:pattern\>
接下来举几个例子:
1、显示/proc/meminfo文件中以不区分大小写的s开头的行;
#grep-i"^s"/proc/meminfo
2、显示当前系统不能登录shell的用户;
#grep"/sbin/nologin\>"/etc/passwd
看到没,这里用的\>词尾锚定。
3、显示shell为bash,且其用户ID号最小的用户的用户名;
#grep"bash\>"/etc/passwd|sort-t:-k3|head-n1
4、显示/boot/grub/grub.conf文件中以一个或多个空白字符开头的行;
#grep'^[[:space:]]\{1,\}
5、ifconfigeth0只取出IP地址;
#ifconfigeth0|grep-o'inetaddr:[^[:space:]]*|cut-d:-f2
6、查找当前系统上名字为student的用户帐户相关信息;
#grep"^student:"/etc/passwd
7、显示/proc/cpuinfo中的processor开头且后面跟了至少1个空白字符的行,而后统计相关行数。
#grep"^processor[[:space:]]\{1,\}"/proc/cpuinfo|cat-n
这里后面管道也可以跟wc-l来统计行数。
好累啊!今天就写到这了,以后再做补充。
本文转自qw87112 51CTO博客,原文链接:/tchuairen/1397819