名前のリストに基づいて番号付きの複数のファイルの名前を変更しようとしています。
例:
1.pdf, 2.pdf, …, n.pdf
names.txt
1行に値があるというファイルもあります。
Fabio
Joao
n-name
だから私たちは持っています
1.pdf
→Fabio.pdf
2.pdf
→Joao.pdf
n.pdf
→n-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