我正在使用tr將製表符分隔的.txt文件轉換爲逗號分隔的csv文件。下面是我的文件輸出無法將製表符分隔的.txt文件轉換爲csv
[email protected] ~/Phd $ cat test_pph_s.txt | cut -f 1,2,3
#o_acc o_pos o_aa1
ENSG00000145888 455 H
ENSG00000145888 450 R
ENSG00000145888 440 M
ENSG00000145888 428 R
ENSG00000145888 428 R
這裏充滿了文件鏈接https://drive.google.com/file/d/0B0iDswLYaZ0zV3ktekhyeGxwTlk/view?usp=sharing
,並嘗試使用TR掉了逗號空白:
[email protected] ~/Phd $ cat test_pph_s.csv | cut -f 1,2,3 | tr "\\t" ","
#o_acc , o_pos,o_aa1
ENSG00000145888 , 455, H
ENSG00000145888 , 450, R
ENSG00000145888 , 440, M
ENSG00000145888 , 428, R
ENSG00000145888 , 428, R
這似乎只需添加一個逗號,而不是刪除空白。
不過我,如果我打開LibreOffice的.txt文件,並保存爲.csv注意到,它就會被轉換成UTF8格式,然後運行
[email protected] ~/Phd $ cat test_pph_s.csv | cut -f 1,2,3 | tr "\\t" ","
給我
#o_acc,o_pos,o_aa1
ENSG00000145888,455,H
ENSG00000145888,450,R
ENSG00000145888,440,M
ENSG00000145888,428,R
ENSG00000145888,428,R
這是什麼我想要。
我在做第一次嘗試時做錯了什麼?在我看來,使用tr不是轉換爲.csv文件的「正確」方法。
謝謝。
csv =逗號分隔值,如果你的文件是製表符分隔,那麼它不是一個csv,它是一個製表符分隔的文本文件。 當通過應用程序將文檔保存爲csv時,它將用逗號分隔這些值,這是合適的csv。 你的第一步說你正在轉換爲一個「製表符分隔的csv」,這與自身相矛盾,這可能是導致命令行問題的原因。 – 2014-11-24 15:10:00
嗨@SO。這是真的,而我也是馬虎。然而,只是在.txt文件中嘗試這樣做會得到相同的結果。我將編輯我的問題 – brucezepplin 2014-11-24 15:20:05
我不相信這是馬虎。術語「csv」通常用於包含由某些字符分隔的字段的文件,儘管RFC4180標準,該字符可以是也可以不是逗號。 – JNevill 2014-11-24 15:34:53