Ошибка FTPS Curl: 1408F10B: Процедуры SSL: ssl3_get_record: неверный номер версии

$ awk -F'|' '
  NR==1 { header=$0 };
  NR>1 && ($3 > colC[$1]) { colC[$1] = $3 ; line[$1] = $0};

  END {
    print header;
    for (i in line) { print line[i] }
  }' file.log 
columnA | colB | colC | colD
name_1| data | 3   | data
name_2| data | 2   | data

Используя |в качестве разделителя полей, этот awkскрипт сохраняет первую строку в переменной header, затем использует массив colCдля сохранения для каждого значения столбца A($1)самого высокого значения. значение в столбце C ($3 ). Массив lineтакже используется для хранения всей соответствующей входной строки ($0).

Наконец, когда весь ввод прочитан и обработан, он печатает каждую сохраненную строку. Вывод, вероятно, потребуется отсортировать, так как ассоциативные массивы не хранятся в каком-либо заданном порядке. -направляет вывод в sort. В зависимости от входного файла строка заголовка может оказаться в середине вывода или в конце... в этом случае, возможно, лучше не сохранять и не печатать ее в скрипте awk, а напечатать это в сценарии оболочки, который запускает сценарий awk.

ПРИМЕЧАНИЕ:Существуют различные способы оптимизации этого алгоритма, я выбрал оптимизацию для удобочитаемости и простоты. Если ваши входные файлы не состоят из миллионов или миллиардов строк, производительность и потребление памяти вряд ли будут проблемой, для которой стоит оптимизировать.

0
30.01.2020, 15:17
0 ответов

Теги

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