No trecho que você deu, isto:
ls -r | POSIXLY_CORRECT=1 awk '
match($0,"20[0-9]{6}") && !n[substr($0,RSTART,6)]++'
funcionaria. O POSIXLY_CORRECT=1
é necessário apenas com o GNU awk
, que não reconhece {6}
(não prejudica outras implementações awk
).
Com o GNU sort
, que garante um tipo estável ,
ls -r | sort -ut_ -k 5,5.6
também funcionaria (espera a data no quinto campo).