簡體   English   中英

如何在Shell中將命令輸出傳遞到CSV文件?

[英]How can I pipe a command output to a CSV file in shell?

〜] $ date; daemon -ip統計數據| grep字節

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

我想按如下所述將這些值通過管道傳輸到CSV文件中。該怎么辦?

|日期| Tx字節| Rx字節|

像這樣用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)}'

如果您將命令的輸出通過管道傳輸到tr ,以便用分隔符替換換行符,即

....|tr '\n' '|'

您幾乎已經完成了整個字符串,除了前導| 因此,如果將此字符串存儲到變量中,即

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

您可以將其附加到您的csv文件中

echo "|$v" >>your_file.csv

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM