我已經這個爲:傳遞輸出從一個命令作爲參數傳遞給另一個
for i in `ls -1 access.log*`; do tail $i |awk {'print $4'} |cut -d: -f 1 |grep - $i > $i.output; done
LS會給的access.log,access.log.1,access.log.2等
尾會給我的每個文件的最後一行,它看起來像:192.168.1.23 - - [08/Oct/2010:14:05:04 +0300]
等等,等等等等
AWK +切將提取的日期(08月/ 10月/ 2010 - 每個access.log的,但不同的),這將允許我grep,並將輸出重定向到單獨的文件。
但我似乎無法將awk + cut的輸出傳遞給grep。
所有這一切的原因是這些訪問日誌包括具有多個日期的行(06/10月,07/10月,08/10月),我只需要最近日期的行。
我該如何做到這一點?
謝謝。
你可以張貼一些示例輸入和預期的輸出? – 2010-10-26 11:29:59
一個問題是,您爲每個access.log保留覆蓋相同的輸出。請注意,您也可以使用多個尾部文件。 – Tomas 2010-10-26 11:31:44
大聲笑..你是對的,不知道我是如何忽略這個事實的。讓我想一想,所以我可以想出一個解決方法。 – w00t 2010-10-26 11:35:48