我有几个以十六进制格式命名的文件。我想将它们批量重命名为十进制等值,将它们从
0x000f750d.wav
0x000f750e.wav
0x000f750f.wav
到
1013005.wav
1013006.wav
1013007.wav
我尝试了以下命令以获取十进制文件名并重命名它们,但我不确定如何进行。 (注意:在执行此命令之前,我从文件中删除了 .wav 扩展名,以便稍后阅读它们以方便自己。)
for f in *; do
mv -- "$(($f))" $f;
done
这是结果:
mv: cannot stat '1013005': No such file or directory
mv: cannot stat '1013006': No such file or directory
mv: cannot stat '1013007': No such file or directory
mv: cannot stat '0': No such file or directory
你基本上已经明白了,但论证顺序错误。这应该可行,并删除
$((...))
的扩展名,然后将其添加回来:
for f in *; do mv -- "$f" "$((${f/%.wav})).wav"; done