2

今天我尝试将一些 MP3 文件从外部驱动器导入到我的音乐文件夹,当我注意到我的许多标签被错误解释时。例如,带有 á,ó,í,ö,ä 等字母的文件在矩形内显示为问号,如下所示:。</p>

我所做的只是将外部 fat32 驱动器中的所有 mp3 文件 mv 到我自己的,即 linux。有没有办法删除这个“特殊字符”,即用一个字母?我没有成功尝试的是sed -e 's/\?/ae/g'像这样:

id3v2 -l song.mp3 | grep Artist | cut -d ':' -f 2 | sed -e 's/\?/ae/g'

我在阅读链接时意识到,其中一些字母为 ä,ö,á 被解释为诸如 \341 之类的数字。我认为这与 FAT32 转 linux 转码有关,但我完全不确定。有人知道如何用 sed 正确替换它们 - 欢迎使用其他解决方案 ;-)。感谢您的建议!

4

2 回答 2

3

我不确定这个反向逻辑 sed 表达式是否可以回答您的 sed 问题,但请尝试一下:

sed -re 's/[^a-zA-Z0-9]+//g'

这需要每个不是az的字符的一个或多个实例。AZ, 0-9 并将其删除。(有时,当您允许的字符集有限但未知数量的非允许字符时,这是最简单的方法。您可能必须在要允许的表达式中添加更多字符。)

于 2012-06-26T20:21:28.270 回答
0

标签在您的 mp3 文件中吗?如果是这样,我会避免在二进制文件上运行 sed ...

于 2012-07-10T18:49:14.837 回答