序列中缺少文件

时间:2018-05-15 08:31:37

标签: linux bash sequence

我正在尝试调整this script以使用.pdf文件目录。与我的文件结构有什么不同的是使用前导0。我的文件都是3位数 - 例如

 constructor(private localeService: BsLocaleService) {
   localeService.use('pt-br');
 }

是否可以使这项工作?

notifyDataSetChanged

1 个答案:

答案 0 :(得分:1)

如果要从文件中读取文件名并在该列表中报告任何缺少的名称:

stripeTokenHandler

给定文件

 awk '{ name = sprintf("%03d.pdf", ++n) }
      { while ($0 != name) {
            printf("Missing file %s\n", name)
            name = sprintf("%03d.pdf", ++n)
        } }' <file

这将生成

001.pdf
002.pdf
005.pdf
007.pdf
008.pdf

假设您要在Missing file 003.pdf Missing file 004.pdf Missing file 006.pdf 的序列中找到缺少文件,其中每个文件名应与模式bash匹配,且数字应位于{{1}之间}和<3 zero-filled digits>.pdf

001

125

for name in {001..125}.pdf
    if [ ! -f "$name" ]; then
        printf 'file "%s" is missing\n' "$name" >&2
    fi
done

使用/bin/sh进行迭代,取值为1到125.使用i=1 while [ "$i" -le 125 ]; do name=$( printf '%03d.pdf' "$i" ) if [ ! -f "$name" ]; then printf 'file "%s" is missing\n' "$name" >&2 fi i=$(( i + 1 )) done 和格式规范i创建预期的文件名。 printf是一个占位符,表示将转换为“零填充的3位十进制整数”(%03d.pdf将用于此值)。

如果预期的文件名不作为常规文件存在,则会将消息打印为标准错误。

使用%03d

$i