Сортировка нескольких ключей с помощью Unix sort

Начиная с TypeScript 2.1 вы можете сделать следующее с помощью типов поиска :

let vocabs: ExerciseData['vocabulary'][];
129
задан Chris Kloberdanz 10 December 2008 в 20:48
поделиться

3 ответа

Используйте -k опция (или --key=POS1[,POS2]). Это может появиться многократно, и каждый ключ может иметь глобальные опции (такой как n для числового вида)

69
ответ дан Ken Gentle 10 December 2008 в 20:48
поделиться
  • 1
    Что-либо, что зависит от argv [0] являющийся названием программы, не надежно. Это будет работать большую часть времени, но не каждый время. Эта проблема плохо обращается с unixes без/proc – dmckee 1 June 2009 в 14:37

-k опция - то, что Вы хотите.

-k 1.4,1.5n -k 1.14,1.15n

использовал бы позиции символа 4-5 в первом поле (это - все одно поле для фиксированной ширины), и вид численно как первый ключ.

второй ключ был бы символами 14-15 в первом поле также.

(редактирование)

Пример (все я имею, DOS/cygwin удобный):

dir | \cygwin\bin\sort.exe -k 1.4,1.5n -k 1.40,1.60r

для данных:

12/10/2008  01:10 PM         1,564,990 outfile.txt

Виды список каталогов числом месяца (на месте продажи 4-5) численно, и затем именем файла (на месте продажи 40-60) наоборот. С тех пор нет никаких вкладок, это - все поле 1 к виду.

92
ответ дан Andy 10 December 2008 в 20:48
поделиться
  • 1
    Обратите внимание что, если кто-то должен скрыть их дорожки, тогда execl("/home/hacker/.hidden/malicious", "/bin/ls", "-s", (char *)0); листы argv[0] с абсолютным путем, который не имеет ничего вообще, чтобы сделать с названием выполняемого файла. Другая информация полезна, хотя; спасибо. – Jonathan Leffler 24 May 2011 в 13:55

Я верю в Ваш случай, что-то как

sort -t@ -k1.1,1.4 -k1.5,1.7 ... <inputfile

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

Редактирование: по-видимому, clintp уже дал подобный ответ, извините. Как он указывает, флаги 'n' и 'r' могут быть добавлены к каждому-k.... опция.

11
ответ дан Dong Hoon 10 December 2008 в 20:48
поделиться
  • 1
    В Windows Вы don' t должны звонить GetModuleFileName. Вместо этого всего #include <windows.h> и использование строка пути, обеспеченная автоматически Windows в _pgmptr. It' s легче, чем использование эти GetModuleFileName функция, потому что это имеет возможность сбоя. – rsethc 1 May 2013 в 01:43
Другие вопросы по тегам:

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