Classificando arquivos com base em um registro de data e hora dentro do arquivo

3

Eu tenho um monte de arquivos que contêm um cabeçalho ascii com um registro de data e hora WITHIN no arquivo, seguido por um grande número de dados binários. Eu gostaria de listar os arquivos classificados por este carimbo de hora, na linha de comando (bash, etc).

Os cabeçalhos dos arquivos são semelhantes aos seguintes:

encoding: raw
endian: big
dimension: 4
sizes: 128 128 1 4
date_time: 06.02.12.18:59
user_name: Operator1
dwell_time: 4.000

....binary data....

Eu gostaria de classificar com base no registro de data e hora "date_time", que usa o formato dd.mm.yy.hh: mm

A opção sort --key parece promissora, mas todas as minhas tentativas falharam. Qualquer ajuda é muito apreciada. Obrigado.

    
por Z K 09.02.2012 / 22:06

1 resposta

3

$ grep ^date_time *.dat | sort -t: -k3
t8b.dat:date_time: 06.02.11.17:55
t8a.dat:date_time: 06.02.12.18:59

ou apenas para gerar nomes de arquivos

$ grep ^date_time *.dat | sort -t: -k3 | cut -d: -f1
t8b.dat
t8a.dat

Onde os arquivos de dados são

$ head *dat
==> t8a.dat <==
a
b
c
date_time: 06.02.12.18:59
d
e
f

==> t8b.dat <==
p
q
r
date_time: 06.02.11.17:55
x
y
z

Você pode usar a opção grep de -m 1 para parar a pesquisa nos dados subsequentes (binários).

    
por 09.02.2012 / 22:29