文本处理练习题
- 显示/proc/meminfo文件中以大小s开头的行(要求:使用两种方法)
- 显示/etc/passwd文件中不以/bin/bash结尾的行
- 显示用户rpc默认的shell程序
- 找出/etc/passwd中的两位或三位数
- 显示CentOS7的/etc/grub2.cfg文件中,至少以一个空白字符开头的且后面有非空白字符的行
- 找出“netstat -tan”命令结果中以LISTEN后跟任意多个空白字符结尾的行
- 显示CentOS7上所有系统用户的用户名和UID
- 添加用户bash、testbash、basher、sh、nologin(其shell为/sbin/nologin),找出/etc/passwd用户名和shell同名的行
- 利用df和grep,取出磁盘各分区利用率,并从大到小排序
显示/proc/meminfo文件中以大小s开头的行(要求:使用两种方法)
知识点1:grep -e 可以支持多条件匹配(或关系)
知识点2:正则表达式匹配或的关系是使用[]
cat /proc/meminfo | grep -e "^S" -e "^s"
cat /proc/meminfo | grep "^[Ss]"
显示/etc/passwd文件中不以/bin/bash结尾的行
知识点:grep -v,可以取反
grep -v "\</bin/bash$" /etc/passwd
显示用户rpc默认的shell程序
知识点: <,>表示词首词尾
grep "\<rpc\>" /etc/passwd | cut -d: -f7
找出/etc/passwd中的两位或三位数
知识点:正则表达式表示计数使用{m,n},扩展正则表达式可以使用{m,n}
egrep "[^0-9][0-9]{2,3}[^0-9]" /etc/passwd | tr -d ':'
显示CentOS7的/etc/grub2.cfg文件中,至少以一个空白字符开头的且后面有非空白字符的行
知识点1:匹配开头使用^
知识点2:匹配1次以上用+
grep "^[[:space:]][^[:space:]]\+" /etc/grub2.cfg
找出“netstat -tan”命令结果中以LISTEN后跟任意多个空白字符结尾的行
知识点:正则表达示匹配次数,任意多个使用*
netstat -tan | grep "LISTEN[[:space:]]*"
显示CentOS7上所有系统用户的用户名和UID
cat /etc/passwd | cut -d: -f 1,3
添加用户bash、testbash、basher、sh、nologin(其shell为/sbin/nologin),找出/etc/passwd用户名和shell同名的行
环境构造
useradd bash
useradd testbash
useradd basher
useradd sh
useradd -s /sbin/nologin nologin
知识点1:分组后向引用,使用括号和\1,表示同一个匹配内容多次出现
知识点2:行首匹配^,行尾匹配$用来匹配用户名和shell
grep "^\([^:]\+\):.*/\1$" /etc/passwd
利用df和grep,取出磁盘各分区利用率,并从大到小排序
df | grep "^/dev/sd" | grep -o "[0-9]\{1,3\}%" | tr -d "%" | sort -nr