Ich versuche, eine Datei wie diese zu sortieren (dies ist eine Liste von Unterprogrammnamen).
cfn=(1370) __lib_file_MOD_file_open
fn=(1368) __universe_MOD_general_boot
fn=(916) __universe_MOD_general_main
fn=(6142) __grid_var_MOD_get_overlap
...
entsprechend der Ganzzahl in Klammern. Ich habe zuerst den Sortierbefehl als versucht
sort -t '=' -k 2 routine_list.txt
aber dann kommt fn = (916) am Ende der Ausgabe.
fn=(1368) __universe_MOD_general_boot
cfn=(1370) __lib_file_MOD_file_open
fn=(6142) __grid_var_MOD_get_overlap
...
fn=(916) __universe_MOD_general_main
Ich möchte jedoch, dass die Zahlen in aufsteigender Reihenfolge sortiert werden (916 -> 1368 -> 1370 -> ...). Ist dies relativ einfach mit mehreren Befehlen oder Optionen möglich?
Antworten:
Wie wäre es mit:
Prüfung :
-n
zeigt an, dass wir numerisch sortierent'('
Setzt das Trennzeichen auf(
-k2
Setzt den Schlüssel aufsort
das zweite Feld, dh von den Ziffern bis zum Ende der Zeile.quelle
(
als Trennzeichen verwenden, anstatt=
als ob Sie(
dann verwenden, dann kann die Sortierung numerisch vom Anfangspunkt des zweiten Feldes beginnen ..Versuche dies. Setzt das Trennzeichen auf = und verwendet dann Feld 2 ab Zeichen 2 (wobei das "(") ignoriert wird.
Oder auch
quelle