gpt4 book ai didi

linux - 查找不在数字列表中的文件

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

我有一个巨大的文件列表,这些文件目前都按顺序编号,并带有不同的文件扩展名。

3400.PDF
3401.xls
3402.doc

一个目录中大约有 1400 个这样的文件。我想知道的是如何找到序列中不存在的数字。

我尝试为此编写一个 bash 脚本,但我的 bash-fu 很弱。

我可以通过使用获取不带扩展名的文件列表

FILES=$(ls -1 | sed -e 's/\..*$//')

但我看到的一些地方说不要以这种方式使用 ls(询问 15 天后,我无法重新定位我阅读这篇文章的位置,如果它存在的话......)

我也可以通过 ls | 获取第一个文件head -n 1 但我很确定我正在使它变得比我需要的复杂得多。

最佳答案

听起来你想做这样的事情:

shopt -s nullglob
for i in {1..1400}; do
files=($i.*)
(( ${#files[@]} > 0 )) || echo "no files beginning with $i";
done

这使用一个 glob 来生成所有文件 1.*2.* 等的数组。然后它将数组的长度与 0 进行比较。如果有没有与模式匹配的文件,则打印消息。

启用 nullglob 很重要,否则,当没有文件匹配时,数组将包含一个元素:文字值 '1.*'

关于linux - 查找不在数字列表中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25731821/

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