adatok törlése ideiglenes fájl létrehozása nélkül.

Van egy fájlom, melyben csak időpontok találhatóak epoch formátumban. Van már megoldásom rá, de megoldható-e ahogy írtam ideiglenes fájl létrehozása nélkül rendbe rakni? A feladat az epoch-oz képest régebbi időpontok eltávolítása és sorba rendezése.

awk -v _now="${EPOCHSECONDS}" '$1 > _now {print $1}' < rectime.txt | sort | uniq > rectime_$EPOCHSECONDS.txt

Hozzászólások

Szerkesztve: 2021. 12. 30., cs – 15:31

A takarítást részben meg tudod inplace csinálni, a rendezést viszont - szerintem - nem igazán:

awk -v _now="${EPOCHSECONDS}" '$1<= _now { printf "%dd\n", NR }' rectime.txt | sed -f - -i.BAK rectime.txt

A kérdés az, hogy mennyi adatod van, mert a uniq is megtrükközhető awk-ban - ezzel minden _now-nál nagyobb éréket egyszer fogja kiírni - viszont ez nem inplace megoldás a teljes takarításra:

'$1 > _now  { sum[$1]++; }
 END        { for (i in sum){ print i}}'