我有一堆文件,其中包含带有时间戳的 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
选项来停止它搜索后续(二进制)数据。