2.A. 将所有的VIP用户行筛选出来,保存到当前用户(shiyanlou)家目录下的vip文件中;
$ grep $'Y\r' ~/04/customers > ~/vip
用 sed -n l ~/04/customers 可以看到最后一个可见字符和行末$之间还有一个\r,所以,应该用 $'Y\r' 而不是 "Y$" 取指定行。
2.B. 将用户按用户名字母升序排列,并保存到当前用户(shiyanlou)家目录下的asc的文件中;
$ sort -k 1 -t ";" ~/04/customers > ~/asc
2.C. 统计文件中来自HZ的用户的数目,并将结果保存到当前用户(shiyanlou)家目录下的hz文件中;
$ cut -d ";" -f 3 ~/04/customers | grep "HZ" | wc -l > ~/hz
2.D. 去除文件中的重复行,按城市字母升序排列后保存到当前用户(shiyanlou)家目录下的customers.bak的文件中;
$ uniq -u ~/04/customers | sort -k 3 -t ";" > ~/customers.bak
2.E. 去除文件中的重复行,提取所有用户的电子邮件信息,并按每行一个的方式保存到当前用户(shiyanlou)家目录下的email文件中;
$ uniq -u ~/04/customers | cut -d ";" -f 2 > ~/email
2.F. 去除文件中的重复行,然后将customers的文件中所有来自NB的VIP用户的电子邮件信息提取出来,并保存到当前用户(shiyanlou)家目录下的vip_email文件中。
$ uniq -u ~/04/customers | tr -d '\r' | grep "NB;Y$" | cut -d ";" -f 2 > ~/vip_email
每行结尾有\r(在最后一个可见字符与 $ 之间),直接用 Y$ 取不到想要的行。
结果只需要取email,对其他字符的处理不影响结果,因此,可以用 tr 先处理一下。
当然,也可以用 uniq -u ~/04/customers | grep $'NB;Y\r' | cut -d ";" -f 2 > ~/vip_email
3.当前用户(shiyanlou)家目录下的04目录下有一个名为messages的系统日志文件,请您在其中找到和软件更新yum相关的日志提取其中的日期、时间和信息字段,并存储到当前用户(shiyanlou)家目录下的yum_messages文件中。
$ grep "yum" ~/04/messages | cut -d " " -f 1-3,6-7 > ~/yum_messages
4.当前用户(shiyanlou)家目录下的04目录下有一个名为sshd_config的SSH服务器配置文件,请您去除该文件中的所有空行和注释行(由#字符打头的行),并将结果保存在当前用户(shiyanlou)家目录下的sshd_config.bak文件中(提示:此处将用到一些正则表达式的知识)。
$ grep -v -E "^$|^#" ~/04/sshd_config > ~/sshd_config.bak