综合案例分析(sort,cut,正则)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了综合案例分析(sort,cut,正则)相关的知识,希望对你有一定的参考价值。
1、 找出ifconfig “网卡名” 命令结果中本机IPv4地址
分析:
解释:要取出ip地址,首先我们可以先取出ip所在的行,即取行;可以结合head和tail,后面会有
更好的方法去取行,取列当然会想到cut命令,但是此例中,我们要考虑分隔符(空格和冒号),
因此tr的引入,会使题目变得更加简单。
答:
在这里小编仅提供一种比较好的方法。
2.查出分区空间使用率的最大百分比值
分析:
解释;先附上一张df查看的结果,比较容易解释
首先我们可以用df查看分区,很明显我们需要的是第5列,自然而然会考虑使用cut命令,但是第一列和第二列
中间的空格长度不一,我们利用以往的经验会使用tr这个命令,可以将空格压缩,而且还能转化为自己想要的
间隔符那么接下来就是排序了。
答:
这样就很容易知道分区的最大利用率了。
3.查出用户UID最大值的用户名、UID及shell类型
分析:
解释:首先取出文件/etc/passwd中含有用户名.UID.以及shell类型的列,不难记忆,分别是1,3,7这三列,
我们可以用cut命令将这三列取出,然后根据sort的功能,根据uid大小排序,这也是比较容易的。
答:
需要区分cut和sort的分隔符,cut的是 -d -f sort的是-t -k。
4.查出/tmp的权限,以数字方式显示
分析:
解释:说到权限,最容易想到的自然是使用ls命令,很容查看到文件的权限,当然查看到的是用字符表示的,
和题意是不符的,我们可能会想对字符做一个转化,但是以目前接触到的命令,还是无法解决,那么有没有
更简单的方法,直接截取到数字表示的权限。还记得我们如何查看atime.mtime以及ctime,使用的是
stat这个命令,使用它也可以查看到数字表示的权限哦。
答:
知道了stat这个命令可以查看到文件的权限,而且是用数字法表示的,剩下的只是截取的问题了,是不是值得
去学stat这个命令,在这里还有更简单的方法,stat -c %a /tmp/一条命令就可以。
5.统计当前连接本机的每个远程主机IP的连接数,并按从大到小排序
分析:
解释:首先我们可以使用netstat命令查看远程连接的IP,由于对ip的统计,我们下一步把ip取出来,
这个操作和案例一类似,这里就不深入研究了,再接着是排序,会使用sort命令也比较容易,统计数量
当然是uniq了,这样一分析发现题目很简单呢,以后要学会分析题目,对困难逐个攻破,加油。
答:
这样就很容易得出答案了。
第一次尝试在博客中添加思维导图,写的不好,多多见谅。
6. 找出/etc/passwd中的两位或三位数
分析:
解释:首先你可以很容易表示出一位数,即[[:digit:]]或[0-9] ,那么表示2位或3位数也就很简单了,
可以在后面加上\\{2,3\\},指定数字重复的次数,这样可以指定为2位数和3位数,这一题需要考虑的是锚定词首和词尾,
如果不锚定,筛选的范围就会变大,4位数5位数也会被包含在内,因此需要加上\\<.\\>.
答:
7. 显示CentOS6上所有系统用户的用户名和UID
分析:
解释:
首先利用cut命令截取/etc/passwd的第一列和第三列是比较容易的,接下来是从这些用户中筛选出系统用户,
而筛选系统用户的条件是UID<500,如何用正则表达式表示出小于500的数,成为这一题的难点,不过我们先前知道
表示一位可以用[0-9] 那表示一个范围呢?也就不是那么的困难了,\\([0-9]{0,2}\\|[1-4][0-9]{2},还有就是注意用户名可能
是个数字而且在500以内,所以就必须限定范围和位置。
答:
表示0-499的数字还有别的方法,课余同学们可以好好探讨。
8.添加用户bash、testbash、basher、sh、nologin(其shell
为/sbin/nologin),找出/etc/passwd用户名同shell名的行。
分析:
解释:首先是关于创建用户的,在这里我们创建用户是没有困难的,关键是如何满足后面的条件,即用户名同shell名,
前面和后面的相同我们自然会想到使用后向引用,但是用户名是未知的该如何表示,那当然使用(.*)了,但是 这里需要
限制用户名的位置,所以就会知道^\\(.*\\)\\>,这样第一步就完成了,中间的内容我们不关心,所以可以用.*替代,接着是结尾的处理,
既然是后向引用,那么\\1肯定少不了,关键是在什么位置匹配,那当然是行尾即\\1$,还有一点要注意那就是只限制了\\1在行尾,
还要限制\\1左边的位置,即加上\\/将/作为左边的分界线。
答:
这是一题典型的后向引用的题目,要多实验,在实验中寻求更多的解决方法。
以上是关于综合案例分析(sort,cut,正则)的主要内容,如果未能解决你的问题,请参考以下文章
Liunx 中sed、grep、cut、sort、tee、diff 、paste命令
Shell脚本------正则表达式与常用命令(sort,uniq,tr,cut)