Új hozzászólás Aktív témák

  • Penty

    aktív tag

    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.

Új hozzászólás Aktív témák