Csv

將文件另存為製表符分隔的文本和電子表格

  • October 16, 2014

我在 Linux 中使用以下命令行將輸入文件(由列組成的 txt 文件)的內容保存為電子表格:

less input_file > out_put.csv

我的輸出文件是 在此處輸入圖像描述

問題出在輸出電子表格中;輸入文件中的所有列都粘貼在輸出文件的一列(電子表格 CSV)中。

如何修改我的簡單程式碼以更有效地將我的 txt 文件另存為製表符分隔的文本和電子表格。

首先,less它只是一個尋呼機,它是一個讓你讀取文件的工具。您所做的與將 input_file 複製到 out_put.csv ( ) 完全相同cp input_file out_put.csv。您不會以任何方式更改內容。

因此,要將其作為電子表格讀取,例如libreoffice,您需要打開電子表格應用程序,然後打開input_file並使用空格作為列分隔符:

        選擇空格作為分隔符的 libreoffice 文本導入對話框

現在,如果您真的想將文件轉換為逗號分隔值格式 ( .csv),則需要添加逗號。此命令將用逗號替換每一行上的所有空格並將輸出保存為output.csv

sed 's/  */,/g' input_file > output.csv

上面的命令是sed,在這裡我使用它的替換操作符。一般格式s/pattern/replacement/將替換patternreplacement. 最後g的 使它替換每行上所有出現的模式,沒有它,它只會替換第一個。我給它的模式是 (a space) followed by 0 or more (that's what means) spaces () and I told it to replace with ,. This basically means "replace any occurrences of one or more spaces with a comma".

引用自:https://unix.stackexchange.com/questions/162490