Запуск программа с несколькими параметрами с использованием сценария оболочки

Решение awk :

awk 'BEGIN{OFS=FS=","}!(($1,$2)in c){c[$1,$2]=1;r[$1]=r[$1] OFS $2}
            END{for(i in r){print i r[i]}}' file
  1. Установите OFS = FS для согласованности.
  2. Используйте awk многомерный массив , чтобы запомнить значения $ 2 , встреченные до сих пор. «Продолжить», только если совпадений нет (! (($ 1, $ 2) в c) ).
  3. Предоставляет «фиктивное» значение для многомерного массива при первом обнаружении нового ключа.
  4. Для удобства объедините желаемую строку вывода в другой массив.
  5. В END распечатайте цикл.
    • Обратите внимание, что итерация цикла не выполняется в каком-либо определенном порядке, при необходимости вы можете использовать функции сортировки awk .

2
07.01.2018, 03:23
0 ответов

Теги

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