Ubuntu 终端数据转换成csv文件

Ubuntu terminal data into a csv file

我正在尝试将从终端获得的数据结果保存为 .csv 文件。

数据是这样的:

1     558
2     576
3     492
...
500   517

我可以使用任何命令行 运行 以便根据我拥有的数据创建 .csv 文件吗?

如果“数据”在文件中并且我们假设它包含空格,就像您的消息包含的那样;

编辑

不使用猫:

tr -s " " < <data_file> | sed -n 's/ /,/p' > <any_file_name>.csv

如果您的数据是输出,您可以:

<output> | tr -s " " | sed -n 's/ /,/p' > <any_file_name>.csv

编辑前:

cat <data_file> | tr -s " " | sed -n 's/ /,/p' > <any_file_name>.csv

如果您想要任何其他 csv 文件分隔符,只需将“,”更改为预期的分隔符,例如“\t”或“;”等等

如果您的数据只是一个输出,您可以通过替换 cat <data_file> 来对其进行管道传输,然后像 | tr -s " " | ... 一样继续,或者像上面那样将其写入 cat 的文件。

没有简单的工具可以回滚和 select 编辑您已经收到的部分输出(当然,如果您愿意,您可以 select 使用鼠标和 copy/paste 进入编辑器并从那里保存),但是如果您可以再次 运行 相同的命令并获得相同的结果,则再次 运行 它并重定向到一个文件,也许通过简单的后处理。

some-command -with arguments -and -options >output.txt

您显示的结果看起来像制表符分隔的数据,基本上已经是 CSV,只是使用制表符而不是逗号 (TSV)。如果数据中没有其他逗号,tr '\t' ',' 会将所有制表符更改为逗号,生成 CSV 文件。

some-command -with arguments -and -options | tr '\t' ',' >output.csv

在更复杂的情况下,您可能需要使用各种标准 Unix 实用程序来执行更复杂的后处理任务。确保您熟悉基本工具(trcutpaste 等)以及至少标准脚本语言 sed 和 Awk 的基础知识。

最后,您可能希望自己熟悉一种现代脚本语言,例如 Python,它的标准库中有一个文档齐全的 csv 模块,而且学习曲线相当轻松.