我有一个文件夹,其中不断从其他用户添加文件。我想使用bash脚本来比较这些文件的文件名中的前三个字符,如果它们是相同的,则将它们压缩在一起。
我是bash(或任何)脚本的新手,所以任何帮助都会受到赞赏。
答案 0 :(得分:0)
关键部分是find
命令。它只选择当前目录中的文件,其中路径(文件名)的最后一部分的前三个字符匹配:
find . -maxdepth 1 -type f -regex '.*/fil.*' -print
现在只需将输出提供给您喜欢的压缩工具:
使用bzip2
的{{1}}文件:
tar
使用tar -cjf myfile.tbz2 $(find . -maxdepth 1 -type f -regex '.*/fil.*' -print)
的{{1}}文件:
zip
答案 1 :(得分:0)
这是一种查找唯一3个字符前缀的技术
command ls | grep -o '^.\{1,3\}' | sort -u
小心使用名称少于3个字符的文件。
这不会将列表限制为文件,也不会选择隐藏文件。