根据文件名相似度对文件进行排序

根据文件名相似度对文件进行排序

我有一个包含许多文件的目录结构。我想递归地找到类似的文件并根据它们的名称对它们进行排序。

简单的部分:找到所有名为的文件f*.ext并将它们移动到某个目录,比如说dir1.

但现在我想再次遍历树并找到所有t*.ext在 中匹配的内容dir1。例如,dir1/f12345.jpg查找对应的source-tree/t12345.jpg(如果存在)并将其移动到dir2

最后,每个对每个dir2/t*.ext都应该有一个dir1/f*.ext.所有source-tree/t*.ext没有的人都dir1/f*.ext应该留在原地。

答案1

尝试这个:

# Create dir2:
mkdir dir2
# After moving f* to dir1, loop through these files (dir1/f*):
for f in dir1/f*; do
    # get the basename, cut off the "f" and put a "t" instead:
    t=source-tree/t$(basename "$f" | cut -c 2-)
    # If that file exists, move it to dir2
    [ -f "$t" ] && mv "$t" dir2
done

相关内容