Ubuntu终端数据转换为csv文件



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

数据是这样的:

1     558
2     576
3     492
...
500   517

有没有可以运行的命令行,这样就可以根据我的数据创建.csv文件?

没有简单的工具可以滚动并选择已经收到的部分输出(当然,如果你愿意,你可以用鼠标选择一些东西,然后复制/粘贴到编辑器中并从那里保存(,但如果你可以再次运行同一命令并获得相同的结果,可以再次运行它并重定向到一个文件,也许只需简单的后处理。

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模块作为其标准库的一部分,并且有一个相当轻松的学习曲线。

如果;数据";在一个文件中,我们假设它包含像您的消息所包含的空间;

编辑

不使用cat:

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的文件中。

相关内容

  • 没有找到相关文章

最新更新