1、删除centos7系统/etc/grub2.cfg文件中所有以空白开头的行行首的空白字符
2、删除/etc/fstab文件中所有以#开头,后面至少跟一个空白字符的行的行首的#
和空白字符
3、在/etc/fstab文件中不以#开头的行的行首增加#号
4、处理/etc/fstab路径,使用sed命令取出其目录名和基名
5、利用sed 取出ifconfig命令中本机的IPv4地址
6、统计centos安装光盘中Package目录下的所有rpm文件的以.分隔倒数第二个
字段的重复次数
7、统计/etc/init.d/functions文件中每个单词的出现次数,并排序(用grep和
sed两种方法分别实现)
.
1.cat /etc/grub2.cfg |sed -r ‘s/^[[:space:]]+//‘
2.cat /etc/fstab |sed -r ‘s/(^#[[:space:]]?)//‘
3.cat /etc/fstab |sed -r ‘s/^([^#].)/#\1/‘
4.1取文件名:echo "/etc/fstab"| sed ‘s@[^/]+$@@‘
4.2取基名:echo "/etc/fstab"| sed ‘s@./([^/]+)$@\1@‘
5.*ifconfig ens33|sed -n ‘2p‘|sed ‘s/.inet (.) netmas./\1/‘*
此题方法很多,如下:
ifconfig ens33| sed -r ‘2!d;s@(.inet )(.)( net.)@\2@‘
ifconfig ens33|sed -n ‘2p‘ |sed ‘s/.inet //‘ |sed ‘s/ netmask.//‘
6.ls /misc/cd/Packages/ |grep "rpm$"|sed -r ‘s/..(.).rpm$/\1/‘|sort |uniq -c
7.1sed方法:cat /etc/init.d/functions | sed -r ‘s@[^[:alpha:]]+@\n@g‘|sort |uniq -c|sort -n
7.2grep方法:cat /etc/init.d/functions | grep -o -E "\<[[:alpha:]]+\>"|sort|uniq -c |sort -n
7.3tr 方法:cat /etc/init.d/functions | tr -c ‘[:alpha:]‘ ‘\n‘ |sort|uniq -c|sort -n
此三种方法,大家可以看出,tr和sed的方法理念相一致,均采用补集的思想,将不是字母的字符全部转换为newline,然后再进行统计;而grep -o方法,将每一个单词进行分割,并进行单独分行,后续再进行统计。
三种方法,grep和tr/sed得到的答案不一样,肯定某种方法存在着漏洞。
这个问题目前我没想到解决的方法,希望大神指出
20180412 接引道人
原文地址:http://blog.51cto.com/13698281/2097467