Бесконечный цикл над текстовым файлом большого размера - PullRequest
0 голосов
/ 20 июня 2019

Я пытаюсь очистить большой файл журнала.Первая пара слов в каждом файле - это дата в мм / дд / гггг чч: мм: сс.Если эта запись более чем через шесть месяцев после текущей даты, я хочу удалить ее из файла.В настоящее время я бесконечно зацикливаюсь на этом огромном текстовом файле.Кроме того, программа должна прекратить зацикливание строк, как только она найдет дату в течение шести месяцев после текущей даты.Любая помощь будет отличной.Я не думаю, что цикл получает следующую строку.

PS Я не очень хорош в 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
...