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).