批量审查文件,确定正确的文件扩展名并为每个文件设置正确的文件扩展名类型

批量审查文件,确定正确的文件扩展名并为每个文件设置正确的文件扩展名类型

我有一个文件夹,里面有几种不同文件扩展名的视频文件。例如:.m4v、.avi、.mp4、.mkv

我使用批量重命名工具删除了文件名的所有扩展名,但是当我这样做时,所有文件现在都显示为 unix 可执行文件。(我在 Mac 上,所以我认为这只是默认设置)。

我有几百个这样的文件,有什么方法可以批量检查这些文件,确定正确的文件扩展名并为每个文件设置正确的文件扩展名类型。

答案1

在 macOS 10.14 Mojave 中文件命令可正确识别文件内容中的 .m4v、.avi 和 .mp4。请注意,macOS 上的版本file当前版本因此其他一些文件类型可能无法正确识别。例如测试影片下载自www.sample-videos.com曾是不是已识别。

对于以下文件类型file 正确识别您可以通过识别文件然后重命名来附加相关后缀。

file * | grep <FILETYPE> | sed s'<SOMETHING>' | xargs -I % mv % %<.EXTENSION>

已识别的文件类型

我从下载了一些示例文件这里那里,将其命名为 文件示例并删除了扩展名。从该目录中,您可以看到除MKV已识别且在描述中具有文件类型之外的所有内容文件命令:

A1398% file file_example_*
file_example_AVI_480_750kB:         RIFF (little-endian) data, AVI, 480 x 270, 30.00 fps, video: H.264 X.264 or H.264, audio: (stereo, 48000 Hz)
file_example_AVI_480_750kB copy:    RIFF (little-endian) data, AVI, 480 x 270, 30.00 fps, video: H.264 X.264 or H.264, audio: (stereo, 48000 Hz)
file_example_M4V_720:               ISO Media, Apple iTunes Video (.M4V) Video
file_example_M4V_720 copy:          ISO Media, Apple iTunes Video (.M4V) Video
file_example_MKV_1280x720_1mb:      , created: Thu Jul 11 00:22:26 1974, modified: Sun Mar 26 05:53:06 2028
file_example_MKV_1280x720_1mb copy: , created: Thu Jul 11 00:22:26 1974, modified: Sun Mar 26 05:53:06 2028
file_example_MP4_480_1_5MG:         ISO Media, MP4 v2 [ISO 14496-14]
file_example_MP4_480_1_5MG copy:    ISO Media, MP4 v2 [ISO 14496-14]

因此,如果你做了一些假设(例如,你没有:文件名,也没有.M4V带有.avi在文件名中)

.m4v 示例

例如,这使用grep(从中选择文件类型寻找结果描述)然后sed消除第一 之后 的 一切:.

A1398% file * | grep .M4V | sed s'/:.*[^:]*$//'
file_example_M4V_720
file_example_M4V_720 copy

如果结果看起来合理,那么你可以改名他们 - 在这种情况下只有M4V

M4V 校正

file * | grep .M4V | sed s'/:.*[^:]*$//' | xargs -I % mv % %.m4v

结果

A1398% ls -la file_example_M4V*
-rw-r--r--@ 1 hali  staff  3538130 Dec 26 18:31 file_example_M4V_720
-rw-r--r--@ 1 hali  staff  3538130 Dec 26 18:31 file_example_M4V_720 copy
A1398%
A1398% file * | grep .M4V | sed s'/:.*[^:]*$//' | xargs -I % mv % %.m4v
A1398% ls -la file_example_M4V*
-rw-r--r--@ 1 hali  staff  3538130 Dec 26 18:31 file_example_M4V_720 copy.m4v
-rw-r--r--@ 1 hali  staff  3538130 Dec 26 18:31 file_example_M4V_720.m4v

因此,对于您问题中可识别的文件类型:

file * | grep .M4V | sed s'/:.*[^:]*$//' | xargs -I % mv % %.m4v
file * | grep .MP4 | sed s'/:.*[^:]*$//' | xargs -I % mv % %.mp4
file * | grep .AVI | sed s'/:.*[^:]*$//' | xargs -I % mv % %.avi

相关内容