Мой вопрос, учитывая список целых чисел, возможно ли в bash: а) найти все последовательности последовательных чисел, а затем б) удалить все, кроме последних чисел в этих последовательностях?
Например, учитывая этот список и предполагая, что числа сохраняются, по одному на строку, в текстовом файле,
001
002
003
005
007
010
011
012
есть ли программа / набор программ, которые будут производить вывод
003
005
007
012
и если да, то как? Спасибо за ваше время.
EDIT:
Вот что у меня есть:
#!/bin/bash
cat file.txt | numinterval >> interval.txt
integer=''
while read -u 3 interval
do
if [[ "$interval" -ne "1" ]]
then echo "$integer" >> desequenced.txt
else read -u 4 integer
fi
done 3< interval.txt 4< file.txt
Основная идея - запустить отсортированный список целых чисел через numinterval, а затем проверить, есть ли в списке numinterval какие-либо из них. Если это так, переходите к следующему целому числу. Если нет, выведите соответствующее целое число в файл.
10508
10861
10862
10906
10906
10909
10909
10950
10950
11179
11181
11182
11325
11325
11341
11341
11428
11428
Вот вывод. Очевидно, что-то пошло не так, поскольку не только последовательные элементы не удалены, но и после того, как список закончился, существует огромное количество пробелов.
Любая помощь приветствуется.