linux编写shell程序,按照文件名后缀分类,找出每个类型里时间最老的文件分别是哪个?大家帮帮忙吧,新人不容易啊
1条回答
关注 第一步,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系统的硬盘