2011-07-22 49 views
2

這是question I posed earlier的後續問題。基本上當我這樣做:sed命令導致亞洲字符被打印到文件

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 

的輸出打印到文件,但我的新的字符串(這是正確的在前面的輸出取代了一個)現在讀作一堆亞洲(我相信普通話)字符。

任何想法?

+2

請在本地shell中執行cmd'locale'的輸出,並且如果您的sed腳本被封裝在shell腳本中,那麼在調用sed之前和之後放置它,或者至少看看那些輸出以查看是否可以識別任何差異。祝你好運。 – shellter

+0

另外我認爲有必要更多地瞭解文件question.txt中的內容 - 它只是ASCII還是別的? – tripleee

回答

1

這聽起來像你有一個編碼不匹配。

我打賭你的shell,Commision.txtquestion.txt並不都具有相同的編碼。正因爲如此,sed正在取代寬度不大的寬字符的一部分。隨後的所有字符編碼都是半個字符,結果是中文。

參見this question討論類似的問題。