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"
我需要替换字幕文件中的倒置感叹号和倒置问号,以便它们在我的电视上正确显示。这些文件在 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"