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