У меня есть текстовый файл, подобный этому небольшому примеру:
>ENST00000599533.1|ENSG00000269831.1|-|-|AL669831.1-201|AL669831.1|43
FFYFIIWSLTLLPRAGLELLTSSDPPASASQSVGITGVSHHAQ
>ENST00000594233.1|ENSG00000269308.1|-|-|AL645608.2-201|AL669831.1|18
DFMHLFFIPSSELILPYP
>ENST00000420190.1|ENSG00000187634.6|OTTHUMG00000040719.8|OTTHUMT00000316521.1|SAMD11-011|SAMD11|179
MSKGILQVHPPICDCPGCRISSPVNRGRLADKRTVALPAARNLKKERTPSFSASDGDSDGSGPTCGRRPGLKQEDGPHIRIMKRRVHTHWDVNISFREASCSQDGNLPTLISSVHRSRHLVMPEHQSR
>ENST00000437963.1|ENSG00000187634.6|OTTHUMG00000040719.8|OTTHUMT00000097862.3|SAMD11-003|SAMD11|109
MSKGILQVHPPICDCPGCRISSPVNRGRLADKRTVALPAARNLKKERTPSFSASDGDSDGSGPTCGRRPGLKQEDGPHIRIMKRRVHTHWDVNISFREASCSQDGNLPT
этот файл состоит из нескольких частей, и каждая часть имеет 2 строки.первая строка - это идентификатор, начинающийся с ">"
, а вторая строка - это последовательность символов.в строке ID поля «|»разделив и глядя на 6-й столбец, есть много повторений каждого идентификатора.Я хочу создать из этого файла новый файл, в котором будет только один повтор каждого идентификатора, и это файл с наибольшим номером в столбце 7. Так что фактически в новом файле у меня будет только один повтор каждого идентификатора (согласно 6-му столбцу) и это идентификатор с наибольшим номером (среди идентификаторов с аналогичным именем в столбце 6) в столбце 7. ожидаемый результат для небольшого примера будет:
>ENST00000599533.1|ENSG00000269831.1|-|-|AL669831.1-201|AL669831.1|43
FFYFIIWSLTLLPRAGLELLTSSDPPASASQSVGITGVSHHAQ
>ENST00000420190.1|ENSG00000187634.6|OTTHUMG00000040719.8|OTTHUMT00000316521.1|SAMD11-011|SAMD11|179
MSKGILQVHPPICDCPGCRISSPVNRGRLADKRTVALPAARNLKKERTPSFSASDGDSDGSGPTCGRRPGLKQEDGPHIRIMKRRVHTHWDVNISFREASCSQDGNLPTLISSVHRSRHLVMPEHQSR
, чтобы сделатьВ этот файл я написал этот код:
awk -F"|" ' /^>/{(array1[val]=array[val]>length($0)) print array1} Input.txt > out.txt
но он ничего не возвращает.Вы знаете, как это исправить, чтобы получить ожидаемый результат?