我有大日志文件的脚本.我可以查看所有行,并使用tail和awk做一些事情.
尾巴:
tail -n +$startline $LOG
AWK:
awk 'NR>='"$startline"' {print}' $LOG
并检查时间,尾部工作6分39秒,awk工作6分42秒.所以两个命令做同样的事情/同一时间.
我不知道怎么做sed. Sed可以比tail和awk更快吗?或者也许是其他命令.
第二个问题,我使用$startline,每次继续从最后一行继续.例如:
我使用脚本行:
10:00AM -> ./script -> $startline=1 and do something -> write line number to save file(for ex. 25),10:05AM -> ./script -> $startline=26(read save file +1) and do something -> write line number save file(55),10:10AM -> ./script -> $startline=56(read save file +1) and do something ....
但是当脚本运行时,检查所有行,何时看到$startline,做某事.由于文件庞大,它有点慢.
对它的任何建议都会更快?
脚本示例:
lastline=$(tail -1 "line.save")
startline=$(($lastline + 1))
tail -n +$startline $LOG | while read -r
do
....
done
linecount=$(wc -l "$LOG" | awk '{print $1}')
echo $linecount >> line.save