Windows XP Windows 7 Windows 2003 Windows Vista Windows教程綜合 Linux 系統教程
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟件教程
 Windows教程網 >> Linux系統教程 >> Linux教程 >> shell截取指定日期的nginx log打印出來

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

日期:2017/2/7 14:34:47      編輯:Linux教程
 

在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 © Windows教程網 All Rights Reserved