Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将命令输出通过管道传输到shell中的CSV文件?_Python_Shell_Scripting - Fatal编程技术网

Python 如何将命令输出通过管道传输到shell中的CSV文件?

Python 如何将命令输出通过管道传输到shell中的CSV文件?,python,shell,scripting,Python,Shell,Scripting,~]$日期;守护进程-ip统计数据| grep字节 Fri Jun 22 13:58:37 +08 2018 1958391001 transmit bytes 1825330799 receive bytes 我想将这些值通过管道传输到CSV文件,如下所述。我如何才能做到这一点 |Date | Tx bytes | Rx bytes |如果您通过管道将命令的输出传输到tr,以便用分隔符替换换行符,即 ....|tr '\n' '|' 除了前面的|之外,您几乎已经完成了整个字符串。因此,如果

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

Fri Jun 22 13:58:37 +08 2018
1958391001 transmit bytes
1825330799 receive bytes
我想将这些值通过管道传输到CSV文件,如下所述。我如何才能做到这一点


|Date | Tx bytes | Rx bytes |

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

....|tr '\n' '|'
除了前面的
|
之外,您几乎已经完成了整个字符串。因此,如果您将此字符串存储到变量,即

v=$(.....|tr '\n' '|')
您可以使用以下命令将其附加到csv文件中:

echo "|$v" >>your_file.csv

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)}'