歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> SHELL編程

shell截取指定日期的nginx log打印出來

在access.log中截取 16/Aug/2010:14:31:30到17/Aug/2010:10:12:07間的日志信息,並輸出到log.txt中,我的思路,用sed打印16/Aug/2010:14:31:30和17/Aug/2010:10:12:07間的日志並>

#!/bin/bash

n1=`grep -n '16\/Aug\/2010:14:31:30' access.log|head -1|cut -d ':' -f1`

n2=`grep -n '17\/Aug\/2010:10:12:07' access.log|tail -1|cut -d ':' -f 1`

sed -n "${n1},${n2}p" access.log >log.txt

另外sed還有更簡單的方法

sed -n '/16\/Aug\/2010:14:31:30/,/17\/Aug\/2010:10:12:07/'p >log.txt

但是此命令思路是對的,可是當access.log 在同一時間內有大量並發訪問日志時,這個就不准確了。最完善的還要算第一種思路。

Copyright © Linux教程網 All Rights Reserved