bash - 将命令的输出写入 csv 文件的特定列,unix

标签 bash csv unix sed git-bash

我想将命令的输出写入 csv 文件的特定列(第 3 和第 5 列)。

#!/bin/bash
echo -e "Value,1\nCount,1" >> file.csv
echo "Header1,Header2,Path,Header4,Value,Header6" >> file.csv
sed 'y/ /,/' input.csv >> file.csv
上面代码段中的

input.csv 看起来像这样

1234567890 /training/folder
0325435287 /training/newfolder

file.csv的当前输出

Value,1
Count,1
Header1,Header2,Path,Header4,Value,Header6
1234567890,/training/folder
0325435287,/training/newfolder

file.csv 的预期输出

Value,1
Count,1
Header1,Header2,Path,Header4,Value,Header6
,,/training/folder,,1234567890,
,,/training/newfolder,,0325435287,

最佳答案

所有操作都可以在一个 awk 中完成:

awk -v OFS=, -v pre="Value,1\nCount,1" -v hdr="Header1,Header2,Path,Header4,Value,Header6" '
   BEGIN {print pre; print hdr}
   {print "", "", $1, "", $2, ""}
' input.csv

Value,1
Count,1
Header1,Header2,Path,Header4,Value,Header6
,,i1234567890,,/training/folder,
,,0325435287,,/training/newfolder,

关于bash - 将命令的输出写入 csv 文件的特定列,unix,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69924170/

相关文章:

bash - 这个 bash 函数如何删除除某些文件以外的所有文件?

Windows 上的 R : character encoding hell

python - 如何在Python中按总和和平均列进行分组?

matlab - 如何求不均匀波形的包络线

shell - 忽略setenv命令中的错误,并继续执行csh脚本

bash - 如何使用 bash 成对读取空终止字符串

linux - 如何将输入/输出连接到 SSH session

json - 比较 2 个 json 数组并返回差值

linux - 为什么 Linux grep 没有给出正确的换行符计数?

bash - 在 shell 中实现通配符扩展