gpt4 book ai didi

linux - 如何查找所有不具有相同名称但扩展名不同的匹配文件的文件

转载 作者:太空宇宙 更新时间:2023-11-04 11:24:31 26 4
gpt4 key购买 nike

我有一个包含超过 100 万个文件的文件夹。这些文件成对出现,只是扩展名不同(例如 a1.ext1 a1.ext2、a2.ext1、a2.ext2 ...)

我需要扫描这个文件夹并确保它满足这个要求(文件耦合),如果我发现一个没有匹配的文件,我应该删除它。

我已经用 python 完成了,但是在处理 7 位数的文件时它非常慢..

有没有办法使用 shell 命令/脚本来做到这一点?

最佳答案

基于另一个答案,您可以使用这样的脚本(它应该位于文件所在的同一目录中,并且应该在那里执行):

#!/usr/bin/env bash 
THRASH=../THRASH
mkdir "$THRASH" 2> /dev/null

for name in $(ls *.{ext1,ext2} | cut -d. -f1 | sort -u); do
if [ $(ls "$name".{ext1,ext2} 2> /dev/null | wc -w) -lt 2 ]; then
mv "$name".{ext1,ext2} "$THRASH" 2> /dev/null
fi;
done

您可以通过修改 THRASH 变量来配置将没有配对的文件移动到哪里。

在具有 3.0 GHz 和 2 GB RAM 的双核 Pentium 上,一次运行耗时 63.7 秒(10000 对,文件夹中每个成员约有 1500 个从文件夹中丢失)。

关于linux - 如何查找所有不具有相同名称但扩展名不同的匹配文件的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15685790/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com