Sziasztok!
Van egy szöveges fájl, benne dátumok, mögöttük feljegyzések, kb. így:
2023-02-23 Valami szöveg a múltból
2023-02-28 Valami szöveg a múltból
2023-03-02 Valami szöveg a múltból
2023-03-15 Valami szöveg a múltból
2023-04-28 Valami szöveg a múltból
2023-05-20 Valami szöveg a múltból
2023-05-28 Mai napi szöveg
2023-06-01 Jövőbeni szöveg
2023-06-03 Jövőbeni szöveg
Csinálnék egy scriptet, ami a múltbéli sorokat törli a fenti fájlból. Eddig jutottam:
#!/bin/sh
NOTES=~/teszt
A=$(date --date="$(awk 'NR==1{print $1}' $teszt)" +%Y%m%d)
B=$(date +%Y%m%d)
if [ "$A" -lt "$B" ]; then
sed -i '1d' $teszt
elif [ "$A" -eq "$B" ]; then
notify-send "$(awk 'NR==1{print}' $teszt)"
else
notify-send "Üresjárati nap"
fi
Ha lefuttatom a scriptet, szépen kitöröl egyet a régmúlt dátumú sorok közül, ha sokszor futtatom, akkor előbb-utóbb elfogynak a régi bejegyzések, és a két notify-send sor valamelyikét fogja lefuttatni attól függően, hogy van-e mára valami feljegyzés, vagy nincs.
Hogyan lehetne megoldani azt, hogy csak egyszer kelljen a scriptet futtatni, de akkor az összes régi dátumot kitörölje? Gondolom valami while read line; do bla-bla; done kellene, de kicsit belebonyolódtam.