0

我有一个文件夹,其中不断从其他用户添加文件。我想使用 bash 脚本来比较这些文件的文件名中的前三个字符,如果它们相同,请将它们压缩在一起。

我是 bash (或任何)脚本的新手,因此将不胜感激。

4

2 回答 2

0

关键部分是find命令。它只选择当前目录中与路径最后部分(文件名)的前三个字符匹配的文件:

find . -maxdepth 1 -type f -regex '.*/fil.*' -print

现在只需将该输出提供给您最喜欢的压缩工具:

对于使用的bzip2文件tar

tar -cjf myfile.tbz2 $(find . -maxdepth 1 -type f -regex '.*/fil.*' -print)

对于使用的zip文件7z

7z a myfile.zip $(find . -maxdepth 1 -type f -regex '.*/fil.*' -print)
于 2013-07-16T14:46:31.337 回答
0

这是一种查找唯一 3 字符前缀的技术

command ls | grep -o '^.\{1,3\}' | sort -u

小心名称少于 3 个字符的文件。

这不会将列表限制为文件,也不会选择隐藏文件。

于 2013-07-16T16:13:51.213 回答