我有一个文件夹,其中包含许多具有以下文件名结构的文件:
John Doe-title.pdf John Doe-title2.pdf John Doe-title3.pdf Jane Smith-一些标题.pdf Jane Smith-第二个标题.pdf
我希望将以相同的两个单词开头的 pdf 作为文件名的一部分合并起来,以获得以下内容:
John Doe.pdf 简·史密斯.pdf
我该如何在 Linux 中使用脚本以及 Linux 下可用的任何工具来完成此操作?
答案1
我知道有点老了,我想要这样的脚本:
- 列出具有连字符的文件
查找 -iname '*-*.pdf'
- 保留连字符之前的部分
查找 -iname'*-*.pdf'| sed“s/-.*$//”
- 删除重复项:您有想要的前缀(“John Doe”,“Jane Smith”)(您可以忽略仅出现一次的前缀,但如果合并 pdf 命令对一个文件感到满意并且只是复制它,那么这可能不是必需的)
查找 -iname'*-*.pdf'| sed“s/-.*$//”| 排序 -u
- 循环遍历前缀,为每个前缀获取以此前缀开头的文件列表并将它们组合起来
IFS=$'\n';对于$中的前缀(find -iname '*-*.pdf' | sed "s/-.*$//" | sort -u); do pdfunite $prefix* $prefix.pdf; 完成