Rename

根據使用名稱列表重命名多個文件

  • October 10, 2020

我正在嘗試根據名稱列表重命名多個編號文件。

例子:

1.pdf, 2.pdf, …, n.pdf

還有一個名為 的文件names.txt,每行有一個值:

Fabio
Joao
n-name

所以我們會有

  • 1.pdfFabio.pdf
  • 2.pdfJoao.pdf
  • n.pdfn-name.pdf

關於如何做到這一點的任何想法?

如果文件真的只是“lineNumber.pdf”,那麼這很容易做到。在外殼中:

c=0
while IFS= read -r name; do
   ((c++))
   echo mv -- $c.pdf "$name.pdf"
done < names.txt

一旦您確定它可以按您的意願工作,請echomv命令中刪除 。

如果您有很多文件,您可能需要考慮在 Perl 中執行它,這樣會更快:

perl -lne 'rename("$..pdf","$_.pdf")' names.txt 

引用自:https://unix.stackexchange.com/questions/613880