ISO-8859 中的倒置感叹号和问号

Inverted exclamation and question mark in ISO-8859

我需要替换字幕文件中的倒置感叹号和倒置问号,以便它们在我的电视上正确显示。这些文件在 ISO-8859 中工作正常,但我无法删除标记。

第一个解决方案是使用命令'sed':

sed s/\¿|¡//g "$FILE"

这适用于 UTF-8 格式的文件,但对于 ISO-8859 格式的文件,什么是正确的解决方案?

sed 's/\xBF//g',例如,不起作用。

在此命令中,您的 \ 在参数传递给 sed 之前被 bash 删除:

sed s/\¿//g "$FILE"

没关系,因为 ¿ 不是 bash 元字符,不需要引号。但是,如果你这样写:

sed s/\xBF//g "$FILE"

它不会如你所愿; bash 将用 x 替换 \x 并使用命令 s/xBF//g 离开 sed,这可能不是您想要的。

您必须写:

sed 's/\xBF//g'

sed s/\xBF//g

发布的命令将不起作用,但是:

sed s/\¿|¡//g "$FILE"

| 是一个 bash 元字符,因此它必须被引用或转义。此外,sed 默认使用基本正则表达式 (BRE),这意味着您必须编写 \| 来表示交替。这意味着您必须输入:

    sed 's/¿\|¡//g' "$FILE"

    sed s/¿\\|¡//g "$FILE"