在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 在同一時間內有大量並發訪問日志時,這個就不准確了。最完善的還要算第一種思路。