Нет, у меня нет письма с отказом. Привет ncomputers - большое спасибо за ответ. Я был значительно играя с столбцов и строк совпадающих с различными awk и команды sed, а также вырезать определенные столбцы и пытается отсортировать их в Notepad++. Я думаю, что ваше предложение базы данных может быть мой лучший следующий маршрут. Если вы можете/готовы обсудить ваше предложение поддержки приступая к работе с SQL, я хотел быть благодарными! ССЗ 2 будет работать `пропускная ("каталог/usr/игры/взлом", "#ПРАГМА", 0);пропускная ("файл/usr/игры/изгой", "#ПРАГМА", 0);пропускная ("каталог/usr/новый/в Emacs", "Ф","Ханой","9","поражение",0);`, если он обнаружил неизвестный ПРАГМА директивы.

Два прохода команду awk, довольно грязно:

на awk -Ф 'ФНР == ШП {дифф[ШП] = $2-$3;
 если (!($1 в minline) || дифф[ШП] < дифф[minline[$1]]) {
 minline[$1]=ВН}; далее}
 ФНР == 1 {Для (а в minline) {п[minline[а]]}}
 ФНР в файле P'.файл CSV.КШМ

Для интереса, вот как это сделать с помощью SQL (сделано в Postgres, чтобы быть точным):

бродяга=# \D быстрый 
 Таблица "pg_temp_2.быстрая"
 Колонка | Тип | Модификаторы 
--------+---------+-----------
 Ф1 | текст | 
 Ф2 | целое число | 
 Ф3 | целое число | 

бродяга=# выберите * от быстрый;
 Ф1 | Ф2 | Ф3 
----+----+----
 С1 | 5 | 2
 С1 | 5 | 3
 С1 | 5 | 1
 С2 | 8 | 3
 С2 | 8 | 4
(5 строк)

бродяга=# выберите Ф1, Ф2, Ф3 из (выбрать *, ранг() над (раздел по заказу Ф1 на Ф2 - Ф3) быстро) как X, где ранг = 1;
 Ф1 | Ф2 | Ф3 
----+----+----
 С1 | 5 | 3
 С2 | 8 | 4
(2 строки)

залет=#