在shell中检查音频文件是否作为MP3有效



我正在编写一个Bash Shell脚本,该脚本需要确定提供的MP3音频文件是有效还是无效。我将如何在Bash中实现这一点?

例如伪造:> file.mp3mv file.txt file.mp3

这取决于你想有多确定。

只检查扩展名:您可以使用轻松地只检查Bash中提供的文件的扩展名

if [ ${file: -4} == ".mp3" ]

它本质上取字符串file的最后四个字符,并断言它等于.mp3

检查文件头:稍有把握,这将检查实际文件数据的一小部分。可以通过使用Bash中的file函数检查文件的Mime Type来完成此操作。这会给你,嗯,Mime类型。

然而,这些可能是伪造的,并且您无法确定文件中的实际数据是否有效。要做到这一点,你需要对二进制数据进行深入检查,并很可能对其进行解码。这不是一个简单的Bash脚本所能做到的。

自行检查文件数据:您可以在命令行使用FFMpeg和FFProbe来测试文件内容。我认为最好的选择是FFProbe,因为它会给你很多关于文件的数据。如果您还有问题,请尝试将您的脚本添加到您的问题中,以获得更多帮助。

最新更新