2015-08-28 49 views
0

我正在編寫一個bash腳本,它循環使用x個日誌文件,並將每個日誌文件的最近10個條目發送到單獨的csv中。所以如果我有25個日誌文件,在運行腳本之後,我預計會有25個新的csv文件,每個文件包含最近的10行。循環播放csv文件,輸出tail -n到每個新的csv

這裏是沿着什麼,我試圖讓線的東西:

#!/bin/bash 
for file in /path/to/logs/*.log; 
    do tail -n 10 > "$file".csv 
done 

我似乎無法在所有的文件得到它的循環 - 相反,它掛在一個。如何讓這個小片段循環遍歷每個文件?

回答

1

我想你在tail命令中缺少$ file參數。你可以嘗試在它的最後添加「$ file」嗎?

#!/bin/bash 
for file in /path/to/logs/*.log; 
    do tail -n 10 "$file" > "$file".csv 
done 
+0

仍然沒有工作,它說: 尾:無法打開「」閱讀:沒有這樣的文件或目錄 我認爲它讀取第二個「$文件」作爲輸入,而不是輸出 – smoothjabz

+0

調試使用bash -x –

+0

沒有運氣: +用於'〜/ path/to/logs /'中的文件' + tail -n 10'' tail:無法打開''用於閱讀:沒有這樣的文件或目錄 – smoothjabz