2012-07-02 43 views
1

我現在有一個shell腳本的代碼段運行,像這樣的遠程shell命令:遠程shell,腳本的輸出更改爲csv

grep -v "^[  ]*#" ${CONFIG_FILE} | 
while read SERVER USER LOGDIR 
do 
{ 
echo "Stats for" $date 
echo "${USER}" 
echo "iTunes:" 
time /bob/shared/ted/remote/rssh ${SERVER} "gzgrep -c \"iTunes Music\" ${LOGDIR}/*${date}*.gz | awk '-F:' '{total+=\$NF}END{print \"Total=\" total}'" 2>&1 
echo 
echo "Default" 
time /bob/shared/ted/remote/rssh ${SERVER} "gzgrep -c \"Default Player\" ${LOGDIR}/*${date}*.gz | awk '-F:' '{total+=\$NF}END{print \"Total=\" total}'" 2>&1 
echo 
echo "The Rest" 
time /bob/shared/ted/remote/rssh ${SERVER} "gzgrep -c \"Junk\"  ${LOGDIR}/*${date}*.gz | awk '-F:' '{total+=\$NF}END{print \"Total=\" total}'" 2>&1 
} </dev/null 2>&1 

done 2>${ERROR_FILE} >${STATS_FILE} 

這給了我輸出像這樣:

Stats for 20120628 
Rich 
iTunes: 
Total=0 

real 0m2.09s 
user 0m0.22s 
sys 0m0.03s 

Default: 
Total=0 

real 0m2.03s 
user 0m0.23s 
sys 0m0.00s 

The Rest: 
Total=0 

real 0m2.03s 
user 0m0.23s 
sys 0m0.00s 

Stats for 20120628 
Ian 
iTunes: 
Total=2 

real 0m21.44s 
user 0m0.22s 
sys 0m0.00s 

Default: 
Total=2 

real 0m21.48s 
user 0m0.21s 
sys 0m0.02s 

The Rest: 
Total=0 

real 0m2.03s 
user 0m0.23s 
sys 0m0.00s 

等等...

我想雖然是這樣的輸出以CSV格式:

Rich,0,0,0 
Ian,2,2,0 

修改上述代碼以獲得我需要的輸出格式的最簡單方法是什麼?

謝謝!

回答

1
grep -v "^[  ]*#" ${CONFIG_FILE} | 
while read SERVER USER LOGDIR 
do 
{ 
echo "${USER}," 
time /bob/shared/ted/remote/rssh ${SERVER} "gzgrep -c \"iTunes Music\" ${LOGDIR}/*${date}*.gz | awk '-F:' '{total+=\$NF}END{print total \",\"}'" 2>&1 
time /bob/shared/ted/remote/rssh ${SERVER} "gzgrep -c \"Default Player\" ${LOGDIR}/*${date}*.gz | awk '-F:' '{total+=\$NF}END{print total \",\"}'" 2>&1 
time /bob/shared/ted/remote/rssh ${SERVER} "gzgrep -c \"Junk\"  ${LOGDIR}/*${date}*.gz | awk '-F:' '{total+=\$NF}END{print total}'" 2>&1 
} </dev/null 2>&1 | tr -d '\n' 

done 2>${ERROR_FILE} >${STATS_FILE} 

我刪除了額外的回聲,附加的逗號,並確保它在一行上。嘗試一下。

如果您不想要時間信息,只需刪除所有time調用。

+0

難道你不能只爲每個服務器做一個rssh,把'grep'目前正在執行的功能放到'awk'腳本中嗎? –

+0

當然,但他要求儘可能小的修改,所以我沒有試圖使整個明智。 – lynxlynxlynx

+0

好點查爾斯!嘿嘿,不能看到樹木的木頭;)乾杯! –