我有一个UTF-16编码文件,我希望用Windows行结束替换UNIX行结束。我不想碰别的东西。
是否有linux命令行工具可以搜索两个字节“0A00”并将其替换为4个字节“0D000A00”?
发布于 2015-07-30 12:27:53
Perl拯救了:
perl -we 'binmode STDIN, ":encoding(UTF-16le)";
binmode STDOUT, ":encoding(UTF-16le):crlf";
print while <STDIN>;
' < input.txt > output.txt发布于 2015-07-30 12:21:55
您可以使用unix2dos,但是您必须在此之前将文件转换为8位编码,然后再将其转换为UTF-16。最明显的中间候选是UTF-8:
$ cat in.txt | iconv -f UTF-16 -t UTF-8 | unix2dos | iconv -f UTF-8 -t UTF-16 > out.txt如果您愿意,可以将这三个管道命令包装在一个方便的脚本中。
#/bin/sh
iconv -f UTF-16 -t UTF-8 | unix2dos | iconv -f UTF-8 -t UTF-16发布于 2015-07-30 12:18:37
unix2dos是你要找的东西。请参阅其不同的选项,以找到一个适合您的UTF-16编码。
https://stackoverflow.com/questions/31723457
复制相似问题