Como listar arquivos nomeados como XXXmmyy.dat em ordem cronológica natural?

3

Eu uso um Mac OS X (V10.9.5) e trabalho na janela do X11, e muitas vezes preciso lidar com milhares de arquivos nomeados como XXXmmyy.dat , onde XXX é um acrônimo de três letras de um local , mm é o mês com dois dígitos e o yy é o ano com dois dígitos.

Este formato é um legado do século passado e continua a ser usado neste caso. E não estou em posição de renomear esses arquivos.

Alguém poderia inventar um comando ls (comando UNIX para listagem) que lista os arquivos mencionados acima em ordem cronológica natural (como se os arquivos tivessem o mesmo nome XXXyyyymm.dat onde yyyy é o ano de 4 dígitos, e mm é o mês de 2 dígitos)?

    
por qquito 26.10.2015 / 02:56

1 resposta

2

Para classificar cronologicamente:

ls *.dat | sort -k 1.6,1.7 -k 1.4,1.5

Para classificar por localização e, em seguida, por ordem cronológica:

ls *.dat | sort -k 1.1,1.3 -k 1.6,1.7 -k 1.4,1.5

A sort man page explica como -k POS1,POS2 funciona:

-k, --key=POS1[,POS2] start a key at POS1, end it at POS2 (origin 1)

POS is F[.C][OPTS], where F is the field number and C the character position in the field. OPTS is one or more single-letter ordering options, which override global ordering options for that key. If no key is given, use the entire line as the key.

    
por 26.10.2015 / 05:55