3

У меня есть куча файлов , которые содержат заголовок ASCii с отметкой времени в пределах файла, а затем большой chunck двоичных данных. Я хотел бы перечислить файлы, отсортированные по этой отметке времени, в командной строке (bash и т.д.).

Заголовки файлов выглядят примерно так:

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

Я хотел бы отсортировать по метке времени "date_time", которая использует формат dd.mm.yy.hh:mm

Опция sort --key выглядит многообещающе, но все мои попытки провалились. Буду признателен за любую оказанную помощь. Благодарю.

1 ответ1

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

или просто вывести имена файлов

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

Где файлы данных

$ 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

Вы можете использовать опцию grep ' -m 1 чтобы остановить поиск в последующих (двоичных) данных.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .