如何使用 sed for windows(来自 cygwin)对 utf16 文件进行替换

Posted

技术标签:

【中文标题】如何使用 sed for windows(来自 cygwin)对 utf16 文件进行替换【英文标题】:How to do substitutions using sed for windows (from cygwin) for utf16 files 【发布时间】:2010-09-20 21:15:46 【问题描述】:

我在 Windows 上使用来自 cygwin 的 sed 在文本文件中进行一些替换。对于普通(ANSI)文件,一切正常,但对 utf-16 文件没有任何作用(不进行替换)。你知道我怎样才能让它同时适用于两种类型的文件吗?

【问题讨论】:

我在尝试对从 Microsoft SQL Server Manglement Studio 保存的文件进行大规模搜索/替换编辑时遇到了这个问题。我没有想出一个好的解决方案 - 最终将所有内容都转换为 ASCII,但我有这个选项。 【参考方案1】:

我会用 iconv 包装它,比如

  iconv -f utf-16 -t utf-8 <input | sed -e expr | iconv -f utf-8 -t utf-16 >output

【讨论】:

以上是关于如何使用 sed for windows(来自 cygwin)对 utf16 文件进行替换的主要内容,如果未能解决你的问题,请参考以下文章

如何批量执行sql查找替换?

如何在 Windows 上使用 Sed 将特殊字符插入文本文件?

如何根据来自不同命令的多行打印输出的输入将文本文件内容替换为“sed”或“awk”?

使用 sed 或 awk 预处理 C/C++ 代码时如何定位可靠的函数?

shell脚本sed命令如何使用变量替换掉包含指定字符串的整行

来自 Toolkit for Windows Phone 的带有 ExpanderView 的自定义标头