如何在Shell中将命令输出传递到CSV文件?

时间:2018-06-22 06:04:48

标签: python shell scripting

〜] $日期;守护程序-ip统计数据| grep字节

Fri Jun 22 13:58:37 +08 2018
1958391001 transmit bytes
1825330799 receive bytes

我要按如下所述将这些值通过管道传输到CSV文件。该怎么办?

|日期| Tx字节| Rx字节|

2 个答案:

答案 0 :(得分:1)

awk类似:

daemon -ip statistics data | awk -v d="$(date)" '/transmit bytes/{t=$1} /receive bytes/{print "|" d "|" t "|" $1 "|"}' 

输出

|Fri 22 Jun 2018 08:29:45 BST|1958391001|1825330799|

或者,如果您喜欢printf样式的格式,则:

daemon -ip statistics data | awk -v d="$(date)" '/transmit bytes/{t=$1} /receive bytes/{printf("|%s|%d|%d|\n",d,t,$1)}'

答案 1 :(得分:0)

如果您将命令的输出通过管道传递到tr,以便用分隔符(即

)替换换行符
....|tr '\n' '|'

除了前导|以外,您几乎已经完成了整个字符串。因此,如果您将此字符串存储到变量中,即

v=$(.....|tr '\n' '|')

您可以使用

将其附加到您的csv文件中
echo "|$v" >>your_file.csv