2017-07-19 176 views
1

我有一個.dat文件,坐在Centos上,數據由非打印字符分隔。將用作字段分隔符的十六進制字符替換爲管道

字段分隔符是Hex(1D),記錄分隔符的末尾是Hex(0D0A)。如果我cat文件,它看起來是這樣的:

field1^]field2^]field3^M$ 

問:有沒有辦法對我來說,與「管」分隔符(或任何其他適當的分隔符)代替六角1D這樣我就可以拉數據轉化爲excel進行一些分析?我的計劃是在Excel中使用管道作爲分隔符將字段拆分爲多列。

我在這裏看到的替換管道的一個問題是,如果其中一個數據集內的字段也意外地有一個管道,那麼數據可能會被錯誤地分割,即基於上面的例子,我可能會結束多於3列。

或者,有沒有其他方法我應該接近這個問題?最終目標是將數據格式正確地在Excel或Tableau中可視化。

回答

0

您可以通過多種方式來翻譯它。最簡單的可能是使用tr

tr[OPTION]... SET1 [SET2]

翻譯,擠壓,和/或來自標準輸入刪除字符, 寫入到標準輸出。

tr '\035' '|' < data.file 

tr只支持八進制轉義\ooo,並0o035是0x1d)

(記錄定界符已經是一個(DOS樣式)CRLF換行符,其中大部分項目應該明白。所以這應該是你所需要做的。)

+0

你是一個傳奇人物。像魅力一樣工作,也學到了一些永遠不錯的新東西。 – Sandeep

相關問題