文本大文本文件无限循环

时间:2019-06-20 12:44:58

标签: bash file loops logging infinite

我正在尝试清理一个大的日志文件。每个文件中的前几个单词是日期,以mm / dd / yyyy hh:mm:ss为单位。如果该条目比当前日期晚六个月以上,那么我想将其从文件中删除。目前,我无限浏览这个巨大的文本文件。另外,程序应在找到当前日期后六个月内的日期后立即停止循环行。任何帮助都会很棒。我不认为循环正在获得下一行。

P.S。我对bash不太满意。

#!/bin/bash

sixmonths=15552000

infile=/home/user/Desktop/testfile1.log

currentDate=$(date +%s)

count=-1

#for line in $infile
while IFS= read -r line; do
        #count=`expr $count + 1`        
        logDate=($line:0:19)
        logDate=$(date --date="$logDate" +%s)
        diff=`expr $currentDate - $logDate`

        if [[ $diff -gt $sixmonths ]] then
                count=`expr $count + 1`
                echo $count
                #sed -i '$countD' $infile
                #echo deleting line
                #sed -i '$line/d' ./$infile

        else
                echo STOPPING PROGRAM DONE!!!!!!!!!!!!
                exit
        fi

done < $infile

sed -i '0,$countd' $infile

0 个答案:

没有答案