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

时间:2015-05-01 00:43:09

标签: linux bash utf-8 sed iso-8859-1

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

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

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

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

例如,

sed 's/\xBF//g'无法正常工作。

1 个答案:

答案 0 :(得分:1)

在此命令中,在将参数传递给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"