如何将终端输出转换为 CSV 格式?

如何将终端输出转换为 CSV 格式?

我目前正在运行两个脚本(一个使用 iostat,另一个使用 ssacli)来收集一些硬件性能数据。我运行脚本并将其输出定向到 .txt 文件。

尽管这在所有意图和目的上都有效,但它需要大量手动“修复” Excel 表中的数据,以使其变为适合我需要的可用格式。

我该如何修改输出文件以自动化其中的一些操作?例如,如果我可以将所有空格替换为逗号。但是我似乎找不到任何关于以我需要的方式更改终端输出的问题。

答案1

命令的输出可以使用所谓的管道进行重定向和处理。管道用符号表示|,意思是“将程序的标准输出重定向到管道符号之前,并将其作为标准输入提供给管道符号之后的程序”。这允许在将更改的内容重定向到文件之前使用文本处理工具处理命令的输出。

例如,用逗号替换空格可以通过以下方法实现

yourscript | tr ' ' ',' > output_textfile.txt

可以依次设置多个管道,从而实现一些相当复杂的即时文本处理和格式化。例如,请参阅以下列表标准unix文本处理工具

答案2

这更像是一个一般的 bash 脚本问题,而不是与 Ubuntu 相关的问题。您可以在堆栈溢出或者这里例如。

要用逗号替换所有空格,yourfilename.txt可以使用以下命令:

#!/bin/bash
    
FILE="yourfilename.txt"
    
    while read -r line; do
        echo "${line// /,}"
    done <$FILE > newfilename.csv

相关内容