这是一个有关Unix shell脚本(任何shell)的问题,但也可以理解任何其他“标准”脚本语言解决方案:
我有一个满是文件的目录,其中的文件名是散列值,如下所示:
fd73d0cf8ee68073dce270cf7e770b97
fec8047a9186fdcc98fdbfc0ea6075ee
这些文件有不同的原始文件类型,如png、zip、doc、pdf等
是否有人可以提供一个脚本来重命名文件,以便获得适当的文件扩展名,可能是基于file
命令的输出?
回答:
J.F. Sebastian's脚本既适用于文件名的输出,也适用于实际的重命名。
Tags:
以下是csl的回复:
我建议您编写一个脚本,它接受
file -i filename
的输出,并用您选择的语言返回一个扩展名(在空格上拆分,找到“/”,在表文件中查找该术语)-最多几行。然后你可以做如下事情:在bash中,或者在bash脚本中抛出它。或者使get_扩展脚本更大,但这样在下次需要相关扩展时就不那么有用了。
编辑:从
for f in *
更改为ls | while read f
,因为后者处理的文件名中有空格(在Windows上是一个特殊的噩梦)。以下是mimetypes的版本:
示例:
遵循@Phil H的响应,遵循@csl的响应:
以下是旧python版本(未测试)的代码片段:
它应该可以在Python2.3.5上工作(我想)。
你可以用
获取MIME类型。您可能会在列表中查找类型,然后附加扩展名。你可以在网上找到list of MIME-types和example file extensions。
相关问题 更多 >
编程相关推荐