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 maple软件,用solve求反函数出现rootof,怎么办?
  • ¥50 汇编语言除法溢出问题
  • ¥65 C++实现删除N个数据列表共有的元素
  • ¥15 Visual Studio问题
  • ¥15 state显示变量是字符串形式,但是仍然红色,无法引用,并显示类型不匹配
  • ¥20 求一个html代码,有偿
  • ¥100 关于使用MATLAB中copularnd函数的问题
  • ¥20 在虚拟机的pycharm上
  • ¥15 jupyterthemes 设置完毕后没有效果
  • ¥15 matlab图像高斯低通滤波