根据文件内的时间戳对文件进行排序

根据文件内的时间戳对文件进行排序

我有一堆文件,其中包含带有时间戳的 ascii 标头之内文件,后面跟着一大块二进制数据。我想在命令行(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”时间戳进行排序,使用格式日.月.年.时:月

sort --key选项看起来很有希望,但我的所有尝试都失败了。任何帮助都非常感谢。谢谢。

答案1

$ 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选项来停止它搜索后续(二进制)数据。

相关内容