在 Linux 中查找按十六进制编号的文件名中的间隙

在 Linux 中查找按十六进制编号的文件名中的间隙

我的文件夹中包含文件名按顺序编号(十六进制)的文件:

00001a08
00001a09
00001a0a
00001a0b
<---
00001a32
00001a33

有没有办法使用 Linux 工具来查找序列中的间隙,例如<---突出显示的间隙?

到目前为止,我只有一个想法,将文件列表导出到 Excel,然后使用公式检查每个条目与其前一个条目的“距离”?(参见找出连续时间列表中的间隙)。如果我需要时不时地检查一下,那么绕道通过 Excel 就有点麻烦了。

答案1

使用bash:

 i=0
 for x in * 
 do
   if (( 16#$x > 16#$i + 1 ))
   then
     echo "gap $i .. $x"
   fi
   i="$x"
 done 

输出

gap 0 .. 00001a08
gap 00001a0b .. 00001a32

如果你不想要第一个结果,那么请i=ffffffff改为i=0

相关内容