我想将命令的输出写入 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/