使用十六进制转换重命名文件

使用十六进制转换重命名文件

我想重命名以下文件,这样删除前 4 个字符和后 7 个字符,然后将剩余的字符转换为十进制,然后重命名。

例如,如果文件名是0030002345678.txt,则应重命名为 00.txt(删除字符并转换为十六进制)。

如果是00300A2345678.txt,应重命名为 10.txt(从十六进制“0A”转换后

答案1

那这个呢:

ls | python -c 'import sys, os; print len([os.system("mv %s %02i.%s" % (name[:-1], int(name.split(".")[0][4:-7], 16), name.split(".")[1])) for name in sys.stdin])'

假设要重命名的文件正是那些ls需要打印的文件;如果不是这种情况,请提供更相关的信息。

相关内容