查找应该存在但实际上不存在的数字

查找应该存在但实际上不存在的数字

我有一长串数字。有什么办法可以显示不存在的数字吗?在这种情况下,它将是2并且4

1
3
5
6

该列表位于文本文件中。澄清一下,我只有一个列表,如下所示

1
2
3
4
5 
6 
...
800
801
802
...
1000

它不应该与另一个进行比较,只是计算缺少的数字,如果存在 804 和 806 但不存在 805,那么它应该列出 805。

答案1

awk 'NR == 1 {n = $1; next}
     {while (++n < $1) print n}' list.txt

答案2

您可以使用seq构建完整列表,然后使用grep查看缺少的内容:

#!/bin/bash

list=$1
from=$(head -n1 $list)
to=$(tail -n1 $list)
grep -vwf "$list" <(seq "$from" "$to")

答案3

#!/usr/bin/env python
import sys

for y in open(sys.argv[1]):
    y = int(y)
    x += 1
    while x < y:
       print x
       x += 1

相关内容