Почему я получаю сообщение «Протокол http не поддерживается или отключен в libcurl»?

Использование awk

В ваших примерах первые шесть символов сопровождаются точкой. Если это всегда так, то:

$ awk -F. '!c[$1]++' File
AAAPOL.0001
AAAPRO.0001
AAAXEL.0002
AAAJOK.1111

Это работает с использованием . как разделитель полей и отслеживает, сколько раз первое поле уже появлялось.

Если это не так, то:

$ awk '!c[substr($0, 1, 6)]++' File
AAAPOL.0001
AAAPRO.0001
AAAXEL.0002
AAAJOK.1111

substr ($ 0, 1, 6) - это первые шесть символов строки. Ассоциативный массив c отслеживает, сколько раз мы видели эти первые шесть символов. Таким образом, если c [substr ($ 0, 1, 6)] не равно нулю, мы уже видели эти символы, и строка не должна печататься. В awk ненулевое значение означает истину. Итак, мы инвертируем тест с помощью ! : это означает, что ! C [substr ($ 0, 1, 6)] истинно, если эти шесть символов не видели раньше. Завершающий ++ обновляет счетчик в c до того, как мы прочитаем следующую строку.

Использование uniq

Для справки тем, кто, в отличие от OP, имеет доступ к версии uniq с параметром -w , затем:

$ uniq -w6 File
AAAPOL.0001
AAAPRO.0001
AAAXEL.0002
AAAJOK.1111
2
22.10.2017, 18:24
0 ответов

Теги

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