将文件另存为制表符分隔的文本和电子表格

将文件另存为制表符分隔的文本和电子表格

我在 Linux 中使用以下命令行将输入文件(由列组成的 txt 文件)的内容保存为电子表格:

less input_file > out_put.csv

我的输出文件是 在此输入图像描述

问题出在输出电子表格中;输入文件中的所有列都粘在输出文件(电子表格 CSV)的一列中。

如何修改我的简单代码,以便更有效地将我的 txt 文件保存为制表符分隔文本和电子表格。

答案1

首先,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/which将替换patternreplacement.最后g使它替换全部该模式在每行上出现的次数,如果没有它,它只会替换第一行。我给它的模式是(一个空格)后跟 0 个或多个(这就是*意思)空格 ( *),我告诉它替换为,。这基本上意味着“用逗号替换出现的一个或多个空格”。

相关内容