我正在尝试根据名称列表重命名多个编号的文件。
例子:
1.pdf, 2.pdf, …, n.pdf
还有一个名为 的文件names.txt
,每行都有一个值:
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