您的位置:首页 > 职场人生

grep详解及相关面试题和答案

2015-11-11 15:45 609 查看
相信g r e p是U N I X和L I N U X中使用最广泛的命令之一。 g r e p(全局正则表达式版本)允许对文本文件进行模式查找。如果找到匹配模式, g r e p打印包含模式的所有行。g r e p支持基本正则表达式,也支持其扩展集。

常用的g r e p选项有:
-c 只输出匹配行的计数。
-i 不区分大小写(只适用于单字符)。
-h 查询多文件时不显示文件名。
-l 查询多文件时只输出包含匹配字符的文件名。
-n 显示匹配行及行号。
-s 不显示不存在或无匹配文本的错误信息。
-v 显示不包含匹配文本的所有行。

pattern正则表达式主要参数:
\: 忽略正则表达式中特殊字符的原有含义。
^:匹配正则表达式的开始行。
$: 匹配正则表达式的结束行。
\<:从匹配正则表达 式的行开始。
\>:到匹配正则表达式的行结束。
[ ]:单个字符,如[A]即A符合要求 。
[ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。
。:所有的单个字符。
* :有字符,长度可以为0。

g r e p允许使用国际字符模式匹配或匹配模式的类名形式。



以下是关于grep的几个面试题,希望能帮到大家
1、显示/proc/meminfo文件中以不区分大小的s开头的行;
grep -i s /proc/meminfocat /proc/meminfo|grep –i ^s2、显示/etc/passwd中以nologin结尾的行;
grep nologin$ /etc/passwd
sed -n '/nologin$/p' /etc/passwd|wc -l
3、显示/etc/inittab中以#开头,且后面跟一个或多个空白字符,而后又跟了任意字符的行;
grep ^#.* /etc/inittab
4、显示/etc/inittab中包含了:一个数字:(即两个冒号中间一个数字)的行;
grep :[0-9]: /etc/inittab grep :[[:digit:]]: /etc/inittab
5、显示/boot/grub/grub.conf文件中以一个或多个空白字符开头的行;
grep^[[:space:]]\{1,\}.*" /boot/grub/grub.conf
grep -E --color"^[[:space:]]{1,}.*" /boot/grub/grub.conf
6、显示/etc/inittab文件中以一个数字开头并以一个与开头数字相同的数字结尾的行;
grep "^[09].*\1$" /etc/inittab
7、ifconfig命令可以显示当前主机的IP地址相关的信息等,要求不包括127.0.0.1;
ifcofig eth0| grep "inetaddr" | cut -d: -f2 | cut -d " " f1(注意“”中的空格)ifconfig eth0|grep "inet addr"|awk '{print $2}'|awk -F ':''{print $2}'
8、显示/etc/sysconfig/network-scripts/ifcfg-eth0文件中的包含了类似IP地址点分十进制数字格式的行;
grep -E "([0-9]{1,3}\.){3}\.[0-9]{1,3}"/etc/sysconfig/network-scripts/ifcfg-eth0
grep"[0-9]\{1,3\}\."\{3\}\.[0-9]\{1,3\}/etc/sysconfig/network-scripts/ifcfg-eth0

本文出自 “Let's Linux” 博客,请务必保留此出处http://tsoagta.blog.51cto.com/9747076/1711832
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: