Sed命令导致亚洲字符被打印到文件

时间:2011-07-22 14:44:20

标签: bash shell scripting sed terminal

这是question I posed earlier的后续问题。基本上当我这样做时:

sed '/Q/{
s/Q//g
r /Users/ericbrotto/Desktop/question.txt
}' Commision.txt

一切都很好,但新输出只是打印到控制台。

当我这样做时:

sed '/Q/{
s/Q//g
r /Users/ericbrotto/Desktop/question.txt
}' Commision.txt > newFile

输出打印到文件,但我的新字符串(在上一个输出中正确替换的字符串)现在读作一堆亚洲(我相信普通话)字符。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

听起来你的编码不​​匹配。

我打赌你的shell Commision.txtquestion.txt并不都具有相同的编码。因此,sed正在取代它不能识别为广泛的宽字符的一部分。所有后续的字符编码都是半个字符,结果是中文。

有关类似问题的讨论,请参阅this question