Как извлечь первый ряд для каждой записи в первом столбце?

Мне удалось решить проблему, отключив Asmedia USB3.0 контроллер USB3_E12 и USB3_E34 в BIOS. Не идеальное решение, но для меня достаточно хорошо.

Дополнительно> Конфигурация встроенных устройств

Контроллер Asmedia USB 3.0 (USB3_E12 USB3_E34)> Отключено

0
21.09.2018, 12:55
2 ответа

Вы можете использовать awk для отслеживания первых полей, которые вы уже видели:

awk '!seen[$1]++' infile

При этом используется хэш seen, введенный первым полем($1). Мы проверяем, является ли пост -увеличенное значение seen[$1]ложным, т. Е. Когда мы сталкиваемся с новым значением, seen[$1]++возвращает 0, а !seen[$1]++истинно; если мы уже видели значение, seen[$1]++возвращает нечто большее, чем 0, а !seen[$1]++ложно.

Операция по умолчанию, когда условие истинно, состоит в том, чтобы напечатать всю строку ({ print $0 }), что и требуется здесь, поэтому нам не нужно расшифровывать это.

Это делает то же самое, но более подробно, но легче для понимания:

awk 'seen[$1] == 0 {
         ++seen[$1]
         print $0
     }' infile
2
28.01.2020, 02:42
$ sort -u -s -k1,1 file
Chr01:19967945-19972643 HanXRQChr01g0004001 1   4698    4698    0.0 8676    100.000 locus_tag=HanXRQChr01g0004001 gn=HanXRQChr01g0004001 begin=19967815 end=19972682 len=4868 chr=HanXRQChr01 strand=-1 sp=Helianthus annuus def=Probable protein kinase superfamily protein
Chr01:23001231-23011701 HanXRQChr01g0004391 1   10470   10470   0.0 19335   100.000 locus_tag=HanXRQChr01g0004391 gn=HanXRQChr01g0004391 begin=22999643 end=23012645 len=13003 chr=HanXRQChr01 strand=1 sp=Helianthus annuus def=Putative squalene cyclase; Squalene cyclase, C-terminal; Squalene cyclase, N-terminal
Chr01:38759426-38779934 HanXRQChr01g0005671 1   20472   20472   0.0 37805   100.000 locus_tag=HanXRQChr01g0005671 gn=SPI begin=38759245 end=38779898 len=20654 chr=HanXRQChr01 strand=1 sp=Helianthus annuus def=Probable beige/BEACH domain ;WD domain, G-beta repeat protein

Эта команда sortбудет рассматривать только первое поле с разделителями-пробелами -в качестве ключа сортировки и возвращать данные, отсортированные с удаленными повторяющимися ключами (будет возвращен первый найденный уникальный ключ ). -sуказывает sortиспользовать "стабильный" алгоритм сортировки, т.е. такой, который не меняет порядок записей с одинаковыми ключами (Я не уверен на 100%, что это необходимо, но кажется разумным использовать его ).

0
28.01.2020, 02:42

Теги

Похожие вопросы