Linux下輸出excel檔案

dbasdk發表於2015-09-22
今日提供給產品需求,需excel檔案,故總結要點如下: 
1.預設間隔是space_20
2.修改為TAB \t _09
awk '  BEGIN { OFS="\t"} ;{ $1=$1 ; print $0} ' aa.txt>aa.xls

【實測發現如果aa.txt中有中文字元,輸出的aa.xls中的中文會亂碼,分割也會異常

Ps :   
  1.檢視工具 od -x -c    ue
  2.unix和win文字檔案區別
 
     Unix :每行結尾只有"<換行>",  \n    LF      10   ox0A  ^J
     Win: "<換行><回車>"         \n\r   LF/CR   13   ox0D  ^M
  結果:unix檔案在win下變為一行,而win在unix下,每行結尾^M(偶的理解是unix控制字符集不包含回車)

ps:

od命令系統預設的顯示方式是八進位制,這也是該命令的名稱由來(Octal Dump)。但這不是最有用的顯示方式,用ASCII碼和十六進位制組合的方式能提供更有價值的資訊輸出。

它們對於訪問或可視地檢查檔案中不能直接顯示在終端上的字元很有用。

-c ASCII字元或反斜槓序列
-x 十六進位制
 
###################################################################################
 
轉換工具 unix2dos/dos2unix
            unix2dos/dos2unix好用, 問題是unix2dos這個工具在我們大多數linux伺服器上根本沒有。
    
            實現unix2dos的功能:
            
            awk '{ print $0"\r" }' ur_file > ur_file.txt
            
            實現dos2unix的功能:
            
            dos2unix這個工具偶們的伺服器上一般是有的, 但是萬一要是木有呢? 不能站著乾著急, 把windows格式文字里的'\r'這個字元刪掉就OK,試試這個吧:
            tr -d '\r' < dosfile.txt > unixfile.txt
            或者strings dosfile.txt > unixfile.txt, 在這裡,記得dos2unix只是把每行尾巴上的\r去掉, 而tr是把全文的\r去掉
            
            PS: strings命令在一個目標或者二進位制檔案中查詢可列印字串,這使你可以讀嵌入到二進位制檔案中的文字字串,該字串對程式設計可能很有用。也可以理解為“只列印可顯示字元”, 這樣會把win格式檔案每行的\r都去掉。


來源:http://blog.chinaunix.net/uid-22421571-id-1774065.html

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29734436/viewspace-1806191/,如需轉載,請註明出處,否則將追究法律責任。

相關文章