qq_38798742 2019-05-17 01:02 采纳率: 0%
浏览 690

编写shell程序按后缀分类并找出时间最老的文件

linux编写shell程序,按照文件名后缀分类,找出每个类型里时间最老的文件分别是哪个?大家帮帮忙吧,新人不容易啊

  • 写回答

1条回答 默认 最新

  • 毕小宝 博客专家认证 2019-05-17 09:18
    关注

    第一步,ls -t | tac | grep 类型 | head -n 1,找到同类型的创建最早的文件。
    ls -t 升序排序 ,head -n 1 取第一个。
    第二步,逐一对执行 date +%s -r 目录名/文件名 获取文件的创建时间。
    两个命令搞定。

    获取文件类型并去重的脚本:

    #进入指定目录
    cd /xxx/xxx
    #下标遍历
    index=0
    #收集文件后缀的数组
    fileSuffix=()
    #文件列表命令
    fileTmp=`ls -t`
    #执行命令获取所有的的文件名称
    fileNames=($(echo $fileTmp))
    #遍历所有的文件名称,截取最后一个文件后缀
    for fileName in ${fileNames[@]}
    do
     fileType=${fileName##*.}
     fileSuffix[$index]=$fileType
     let index++
    done
    
    echo total file $index
    
    #使用 awk 对文件后缀数组去重
    fileSuffix=($(awk -vRS=' ' '!a[$1]++' <<< ${fileSuffix[@]}))
    
    #遍历最后去重后的后缀,执行获取文件时间的方法
    for fileType in ${fileSuffix[@]}
    do
      echo $fileType
      #TODO 获取最久的时间
    done
    

    脚本测试结果:

    图片说明

    评论

报告相同问题?

悬赏问题

  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制