如何按三个一组处理文件

感官的

我有一个文件夹,其中包含3个月以内且不到1年的备份文件。它们具有相同的名称部分,但另一部分是备份日期(所以我有一组文件)。对于文件夹中的所有文件,我只需要保留每个组中的3个zip文件:不是所有文件中的最后3个修改后的文件,而是每个组中的最后3个文件,因为可以在不同的时间创建备份过去。其他文件,删除。

例子:

压缩文件列表:

ais_2016-02-21.zip
ais_hg_2016-07-31.zip
ais_hg_2016-08-07.zip
ais_hg_2016-08-14.zip
ais_hg_2016-08-21.zip
ais_hg_2016-08-28.zip
ais_hg_2016-09-04.zip
asf_2016-07-17.zip
asf_2016-07-24.zip
asf_2016-07-31.zip
asf_2016-08-07.zip
asf_2016-08-14.zip
asf_2016-08-21.zip
asf_2016-08-28.zip
asf_2016-09-04.zip
asf-ant-tasks_2015-12-13.zip
asf-ant-tasks_2015-12-27.zip
asf-ant-tasks_2016-01-17.zip
asf-ant-tasks_2016-01-31.zip
asf-ant-tasks_2016-02-14.zip
asf-ant-tasks_hg_2016-02-28.zip
asf-ant-tasks_hg_2016-08-07.zip
asf-ant-tasks_hg_2016-08-14.zip
asf-ant-tasks_hg_2016-08-21.zip
asf-ant-tasks_hg_2016-08-28.zip

团体:

ais
ais_hg
asf
asf-ant-tasks
asf-ant-tasks_hg

而我需要保持从去年3个修改过的文件ais,从3 ais_hg,从3asf等,但也有文件(130),所以我不能手动编写每个组在脚本的多个组。

所以我在这里。我有两个数组,我不知道从这里到哪里。

#!/bin/bash

files=(/media/sf/zipp/outOFtime/*.zip)
cuts=($(find ${files[@]} -type f | sed 's/.{15}$//' | sed 's/^.{1}//' | sort |uniq ))

for f in "${cuts[@]}" 
do
    echo -e $f 
done
切普纳

首先,获取唯一组列表。(我假设没有文件名称中包含换行符。)

for f in *.zip; do
  echo "${f%%_*}"
done | sort -u > groups.txt

接下来,获取与每个组匹配的文件列表,并仅输出最后三个文件:

while IFS= read -r group; do
  files=( "$group"_*.zip )
  for f in "${files[@]:0:${#files[@]}-3}"; do
    rm "$f"
  done
done < groups.txt

首先,"${var:s:l}"扩展到一个长度为的子字符串,该字符串ls的值的位置开始var当应用于数组时,它将扩展l数组元素的序列,从index处的元素开始s因此,这里,如果有在9个元素files,然后${#files[@]}扩大到9,从该叶片6(均减去3sl在算术上下文计算的),所以我们必须的中间表达式${files[@]:0:6}结果是数组中的前6个文件。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何找到一组三个或更多的数字?

如何在 MySQL 中以三个为一组显示行

用一组字母重写* .ext文件名的前三个字符

编码一组三个整数一个唯一的号码

在查询三个表中。如何在SQL中与他们的成员组成一组团队

一组三个中的一个 UILabel 不会更新文本

T-SQL 更新查询以三个为一组输入重复数据

给定两个向量,请使用叉积创建一组三个正交向量

如何在R中按组减去三个观察值的中位数

Python:从附加到单个列表的三个单独列表中获取唯一组合?

如何按三位一组(模式)计算数字

PyQt5:QVBoxLayout:如何将三个按钮作为一个组?

如何在一个内核模块中包含三个 IRQ 处理程序?

gnuplot:如何从文件中绘制一组三角形?

当其中一个失败时如何处理一组延迟的

如何tar一组文件?

如何计算一组文件的词频?

如何读取一组.csv文件,每个文件仅保留一个指定列

如何使用Python根据一个文件对一组文件的内容进行排序

如何从批处理文件中的一组字符串中设置随机值?

如何从一组文本文件中顺序读取和处理数据?

如何将三个Excel文件行合并为一个?

列表中每个字符串的最短唯一组合,至少三个字符

一组按升序排列的整数的k个组合

如何对三行一组的行求和?

如何获取按三个条件排序的字典列表

如何使Maven在编译时仅考虑一组重复文件中的一个?

如何处理涉及三个向量的索引?

Apache Flink:如何处理三个流