正则表达GREP之练习题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达GREP之练习题相关的知识,希望对你有一定的参考价值。

1、显示/proc/meminfo文件中以大小s开头的行(要求:使用两种方法)

 cat /proc/meminfo | grep -o ‘^S.*‘
 egrep "^(s|S)" /proc/meminfo
 grep -e "^s" -e "^S" /proc/meminfo
 grep "^(s|S)" /proc/meminfo
 grep "^[sS]" /proc/meminfo

2、显示/etc/passwd文件中不以/bin/bash结尾的行

 egrep -v ‘(/bin/bash)$‘ /etc/passwd

3、显示用户rpc默认的shell程序

 getent passwd rpc | cut -d: -f7

4、找出/etc/passwd中的两位或三位数

 egrep -o ‘[0-9]{2,3}‘ /etc/passwd

5、显示CentOS7的/etc/grub2.cfg文件中,至少以一个空白字符开头的且后面有非空白字符的行

 egrep ‘^[[:space:]]{1,}.*‘ /etc/grub2.cfg

6、找出“netstat -tan”命令结果中以LISTEN后跟任意多个空白字符结尾的行

 netstat -tan | egrep ‘(LISTEN)[[:space:]]+$‘

7、显示CentOS7上所有系统用户的用户名和UID

 cut -d: -f1,3 /etc/passwd

8、添加用户bash、testbash、basher、sh、nologin(其shell为/sbin/nologin),找出/etc/passwd用户名和shell同名的行

 useradd -M bash
 useradd -M testbash
 useradd -M basher
 useradd -M sh
 useradd -M -s /sbin/nologin nologin
 egrep ‘(^.)>.<1$‘ /etc/passwd

9、利用df和grep,取出磁盘各分区利用率,并从大到小排序

 df | grep -o ‘<[0-9]+%.*‘ | sort -rn

10、显示三个用户root、mage、wang的UID和默认shell

 LOGIN_COLOR="e[1;31m"
 LOW_COLOR="e[0m"
 for i in [email protected];do
   echo -e "${i}用户的 UID 是:${LOGIN_COLOR}id $i | cut -d" " -f1 | grep -Eo "[0-9]+"${LOW_COLOR}"
 done
 echo -e "系统默认的Shell环境是:${LOGIN_COLOR}echo $SHELL${LOW_COLOR}"

11、找出/etc/rc.d/init.d/functions文件中行首为某单词(包括下划线)后面跟一个小括号的行

 egrep -o ‘(/[[:lower:]]+)+‘ /etc/rc.d/init.d/functions

12、使用egrep取出/etc/rc.d/init.d/functions中其基名

 echo /etc/rc.d/init.d/functions | egrep -o ‘[^/]+/?$‘

13、使用egrep取出上面路径的目录名

 echo /etc/rc.d/init.d/ | egrep -Eo ‘^/.*/$‘

14、统计last命令中以root登录的每个主机IP地址登录次数

 last |egrep "<root>" | tr -s " " | cut -d" " -f1,3 |sort -rn | uniq -c

15、利用扩展正则表达式分别表示0-9、10-99、100-199、200-249、250-255

 echo 9 | egrep "[[:digit:]]{1}>"
 echo 99 | egrep "[1-9][[:digit:]]{1}>"
 echo 199 | egrep ‘[1][[:digit:]]{1}‘
 echo 249 | grep ‘2[0-4][[:digit:]]{1}‘
 echo 255 | egrep ‘25[0-5]‘

16、显示ifconfig命令结果中所有IPv4地址

  ifconfig | egrep -o ‘([[:digit:]]{1,3}.){3}[[:digit:]]‘

17、将此字符串:welcome to magedu linux 中的每个字符去重并排序,重复次数多的排到前面

  echo welcome to magedu linux | tr -d " " | grep -o ‘.‘ | sort | uniq -c | sort -rn

以上是关于正则表达GREP之练习题的主要内容,如果未能解决你的问题,请参考以下文章

grep之正则表达式的理解及应用

linux12shell编程 --> 三剑客之grep命令

grep与正则表达式02-相关练习题

grep正则表达式详解及练习

shell脚本正则表达式三剑客之一(grep,egrep)

正则表达式与grep