Добрый день! Вероятно, совсем простая задачка, решается многими способами, но я что-то пока не нашел подходящего.Входные данные:
есть файл txt, в нем, в том числе, есть строки вида >NC00001 (прочее из этих строк удалено sed -r 's/xxxxx.+//' ) файл.ext
Таких строк 5572 штуки (всего строк в файле существенно больше), т.е. имеем диапазон строк указанного вида >NC00001 - >NC05572, между которыми другие строки. Количество других строк между целевыми строками вида >NC00001 рандомное, но уменьшается к концу файла.
Задача:
получить уникальные числа после константного тэга >NC, так чтобы строка вида >NC****** встечались только один раз в файле )
Условия: 1) нужно чтобы в числовой части строки присутствовало не более одной цифры 0
2) В подстановке допустимы только цифры, не более 5-6 знаков(цифр) после >NC.
3) Могут быть в порядке возрастания
3) нужна проверка вхождения, т.е. что каждый из полученных идентификаторов уникален.
4) решить на bash, можно и python
Что нашел: если вместо 0000 тупо клеить какие-нибудь числа, с учетом количества строк,очевидно, возникают повторы.
Рассматриваю sed, rev, tac, seq, grep, uniq
Из любопытного, но пока не разобрался : cut -d'' -f1|sort|uniq-c|grep -Ev'^[[:space:]]+1[[:space:]]'