linux重定向实验报告,实验04:重定向与管道(挑战)

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

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值