有没有人知道如何在SED命令中替换包含\u2015
的字符串,如下例所示?
sed -ie "s/some text \u2015 some more text/new text/" inputFileName
答案 0 :(得分:1)
你只需要逃避现有的斜杠。以下示例在GNU sed version 4.2.1
$ echo "some text \u2015 some more text" | sed -e "s/some text \\\u2015 some more text/abc/"
$ abc
此外,您不必使用-i
标记,根据man
页面,该标记仅用于编辑files
。
-i[SUFFIX], --in-place[=SUFFIX]
edit files in place (makes backup if extension supplied). The default operation mode is to break symbolic and hard links. This can be changed with --follow-symlinks and
--copy.
答案 1 :(得分:-1)
不确定这是否正是您所需要的,但也许您应该查看native2ascii
工具来转换此类unicode转义。
通常它会将所有无法在ISO-8859-1中显示的字符替换为unicodes(使用\ u进行转义),但它也支持反向转换。假设您有一些名为“input”的UTF-8文件包含\u00abSome \u2015 string\u00bb
,然后执行
native2ascii -encoding UTF-8 -reverse input output
将生成带有«Some ― string»
的“输出”文件。