gpt4 book ai didi

linux - 根据文件中的时间戳对文件进行排序

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:39:26 25 4
gpt4 key购买 nike

我有一堆文件,其中包含带有时间戳的 ascii header WITHIN 文件,后跟一大块二进制数据。我想在命令行(bash 等)中列出按此时间戳排序的文件。

文件头类似于以下内容:

encoding: raw
endian: big
dimension: 4
sizes: 128 128 1 4
spacings: 1.0 1.0 1.0 NaN
position: -3164,-13678
date_time: 06.02.12.18:59
user_name: Operator1
sample_name:
dwell_time: 4.000
count_time: 65.536
duration: 202.000
raster: 79912
pixel_width: 624.3125
pixel_height: 624.3125

....binary data....

我想根据“date_time”时间戳进行排序,它使用格式 dd.mm.yy.hh:mm

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

最佳答案

假设这些文件是图像,那么您可以使用类似 exiftool 的工具根据创建日期重命名它们,然后按名称对它们进行排序。

如果您不能重命名它们,只需将带有创建日期的名称转储到 STDOUT 并对其进行排序,例如:

exiftool -p '$dateTimeOriginal $filename' -q -f DIRECTORY/WHERE/IMAGES/ARE | sort -n 

如果您只想要输出中的文件名,请附加一个 | cut -f 2 -d "" 到最后。

如果它是 exiftool 无法识别的文件格式,这可能会或可能不会工作:

for f in YOURFILES* ; do
filedate=`grep --binary-file=text -i -o 'date_time: ...........:..' $f | head -1`
echo "$filedate $f"
done | sort -n

注意:当文件名中有空格时,这将不起作用(我将把它留给您解决)。如果您只想输出排序后的文件名,请附加 | awk '{print $NF}'sort -n 之后。

关于linux - 根据文件中的时间戳对文件进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9218302/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com