2014-03-26 45 views
0

我需要工作上學的幫助。 我已經從(當然是從stackoverflow)得到了大寫字符串的第一個字符的這個腳本。用UTF8輸入的sed

sed -r "s/(^|\.\s+)./\U&/g" <$temp_file_2 

但是,這是ANSI編碼輸出或是什麼。文件-bi顯示未知的8位編碼格式。

在utf-8中輸出文件是否有任何改變?

P.S .:此sed命令用於大寫第一行的第一個字符。 (支持特殊的斯洛伐克字符,如ščťžýáíéď等) P.S:文件必須是UTF-8,因爲內容被插入到mysql數據庫中。 轉換文件導致信息丟失。

+0

'sed'不能相互轉換字符編碼;你需要一個像'iconv'這樣的單獨程序來首先轉換輸入文件。 – chepner

+0

但是我之後會把文件內容放到mysql數據庫中。文件包含特殊字符,例如不能插入到mysql中的特殊字符。我只有在輸入文件位於utf8時纔有運氣。 – Tommy

+0

我看到一些解決方案使用pear -pe和sed命令,但我不知道如何使用它 – Tommy

回答

0

試試這個

cat <src> | iconv -f <srcenc> | sed .... | iconv -t <targetenc> > target 

要查看編碼的列表:

iconv -l 

要看到,如果你猜對輸入文件的編碼正確檢查

cat <src> | iconv -f <srcenc>