成功的秘诀很简单=开始+坚持 接下来介绍grep和基本的正则表达式: 当大家需要从某个文本中,或者信息中检索数据时就要用上grep了 先介绍下grep的基本语法
grep [options] ‘pattern’ file 常用选项: -i 不区分字符大小写; -v 反向选取,只显示不匹配模式的行; -o 只显示被模式匹配到的字符串 -E 使用扩展的正则表达式 grep -E = egrep --color=auto 把匹配到的项,显示红色。 常用的也就这几个,如果大家要获取更多,请自行man grep。
元字符的介绍: ^ 行首锚定符,用法格式 "^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 -n 1 4、显示/boot/grub/grub.conf文件中以一个或多个空白字符开头的行; # grep '^[[:space:]]\{1,\} 5、ifconfig eth0 只取出IP地址; # ifconfig eth0 | grep -o 'inet addr:[^[: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 来统计行数。 好累啊! 今天就写到这了,以后再做补充。
|