名前リストを使用して複数のファイルの名前を変更する

名前リストを使用して複数のファイルの名前を変更する

名前のリストに基づいて番号付きの複数のファイルの名前を変更しようとしています。

例:

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

names.txt1行に値があるというファイルもあります。

Fabio
Joao
n-name

だから私たちは持っています

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

これを達成する方法についてのアイデアはありますか?

答え1

ファイルが実際に「lineNumber.pdf」の場合、これを簡単に実行できます。シェルから:

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

必要に応じて動作していることを確認したら、コマンドechoから削除してください。mv

ファイルが多い場合は、Perlで行う方がはるかに高速です。

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

関連情報