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