我有1,500个7zip档案,每个档案包含2到10个文件,没有子目录。
每个文件具有相同的扩展名,但是文件名有所不同。
我只希望每个存档中只有一个文件,但我想批量执行此操作。我不关心要取出哪个文件,只要只取出一个文件即可。它可以是第一个文件,最新的,最大的,最小的文件,这无关紧要。
这是一个例子:
aa.7z {blah 56.smc, blah 57.smc, 1 blah 58.smc}
ab.7z {xx.smc, xx 1.smc, xx_2.smc}
ac.7z {1.smc}
我想运行相当于:
7z e *.7z # But somehow only extract one file
谢谢!
最终,我的解决方案是提取所有文件并在目录中运行以下命令:
for n in *; do echo "$n"; done > files.txt
然后,我将该列表导入到excel中,并用一个特殊字符将文件分割,该文件将文件名与文件名内的合格数据分开(例如:Some Title(V1)[X2] .smc),特别是我使用了括号定界符。
然后,我删除了所有重复项,仅从拉链中保留了每个副本的一个版本。我终于重新合并了这些列(不幸的是,在拆分过程中删除了括号,因此编写了一个函数,以在下一列是否存在内容的情况下将其添加回去),然后在查看了StackOverflow的一些答案后重新保存了files.txt。 ,基于输入文件(files.txt)删除的文件。对此警告一下,文件名中的空格会导致rm和xargs出现问题,因此我不得不用引号将变量封装起来。
最终,这仍然不能很好地为我服务,所以我只是完全使用了另一种资源。
发布此答案,以便其他陷入类似困境的人找到替代解决方案。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句