设为首页 收藏本站
查看: 649|回复: 0

2017年最新企业面试题之shell(三)

[复制链接]

尚未签到

发表于 2018-8-24 08:35:47 | 显示全部楼层 |阅读模式
  2017年最新企业面试题之shell(三)
  
  练习题1:写一个shell脚本,类似于日志切割,系统有个logrotate程序,可以完成归档。但现在我们要自己写一个shell脚本实现归档。
  举例: 假如服务的输出日志是1.log,我要求每天归档一个,1.log第二天就变成1.log.1,第三天1.log.2, 第四天 1.log.3  一直到1.log.5
  脚本内容如下:
#!/bin/sh  
function logdir ()
  
{
  
    [ -f $1 ] && rm -f $1
  
}
  
for i in $(seq 5 -1 2)
  
do
  
    q=$[$i-1]
  
    logdir /data/1.log.$i
  
    if [ -f /data/1.log.$q ]
  
    then
  
        mv /data/1.log.$q /data/1.log.$i
  
    fi
  
done
  
logdir /data/1.log.1
  
mv /data/1.log  /data/1.log.1
  
  练习题2:打印只有一个数字的行
  如题,把一个文本文档中只有一个数字的行给打印出来。
  参考答案如下:
[root@ceshiji ~]# cat 2017-8-31.txt  
My name is wtf
  
I love zd
  
qqqqqqqqqqqqqqqqq
  
aaaaaaaaaaaaaaaaa
  
rrrrrrrrrr1tttttttttttttt
  
yyyyyyyyyy3333ssssssssssss
  
4444444444444444444444444
  
4SRDTYGFJ
  
5
  
333
  脚本如下:
#!/bin/bash  
file=/root/2017-8-31.txt
  
line=$(wc -l $file|awk '{print $1}')
  
for i in $(seq 1 $line)
  
do
  
        q=`sed -n "$i"p $file|grep -o '[0-9]'|wc -l`
  
        if [ $q -eq 1 ];then
  
        sed -n "$i"p $file
  
        fi
  
done
  脚本运行结果:
  rrrrrrrrrr1tttttttttttttt
  4SRDTYGFJ
  5
  说明:
  (1)grep -o 其中 -o 表示“only-matching”,即“仅匹配”之意,详细内容参考:http://blog.csdn.net/u013982161/article/details/52334940
  (2)提取数字:wc -l $file|awk '{print $1}'
  解释如下:
[root@ceshiji ~]# wc -l 2017-8-31.txt  
10 2017-8-31.txt
  
[root@ceshiji ~]# wc -l 2017-8-31.txt |awk '{print $1}'
  
10



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-555752-1-1.html 上篇帖子: shell脚本语言编程进阶实战 下篇帖子: 基于mysqldump编写自动全备增备的shell脚本
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表