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 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘