Запись наивысшего NF

Используя awk для следующего входного файла, как я могу взять запись с наивысшим значением NF для того же последнего поля.

Файл:

  • Быстрая элиминация повторяющихся строк по нескольким файлам
  • Решение целочисленного выражения ожидается
  • Итерация через подкаталоги и выполнение awk-скрипта для определенных файлов
  • Конкатенация последовательностей под заголовком
  • Как удалить строку, если разница между двумя столбцами меньше 2000
  • Своеобразное поведение grep / heading трубопроводов
  •  5541,55004,919843,IND 5542,5541,55004,919843,IND 7903,790287,RUSE 7905,7903,790287,RUSE 

    Требуемый результат:

     5542,5541,55004,919843,IND 7905,7903,790287,RUSE 

  • передача паролей в скрипт
  • Как разбить строку - Bash
  • Как вычесть два раза в оболочке
  • Обработать последнюю строку сначала с помощью awk
  • Извлечь точное количество элементов из одного и того же идентификатора
  • Объедините 2 огромных файла, соответствующих нескольким столбцам, и сохраните порядок (соответствие печати и несоответствующие значения) - увеличьте масштаб с awk
  • One Solution collect form web for “Запись наивысшего NF”

    Вы можете использовать два массива: один, чтобы сохранить количество полей, и один, чтобы сохранить всю запись, и цикл над вторым массивом в END :

     awk -F, 'NF>a[$NF] {a[$NF]=NF; b[$NF]=$0} END{for (i in b) print b[i]}' file.txt 

    Пример:

     % cat file.txt 5541,55004,919843,IND 5542,5541,55004,919843,IND 7903,790287,RUSE 7905,7903,790287,RUSE % awk -F, 'NF>a[$NF] {a[$NF]=NF; b[$NF]=$0} END{for (i in b) print b[i]}' file.txt 5542,5541,55004,919843,IND 7905,7903,790287,RUSE 
    Linux и Unix - лучшая ОС в мире.