我需要在字幕文件中替换倒置感叹号和倒置问号,以便在电视上正确显示。文件在ISO-8859中正常工作,但我无法删除标记。
第一个解决方案是使用命令' sed
':
sed s/\¿|¡//g "$FILE"
这适用于UTF-8中的文件,但ISO-8859中文件的正确解决方案是什么?
例如, sed 's/\xBF//g'
无法正常工作。
答案 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"