Chciałbym posortować plik:
D104HN-D104HA 8.320 4.521 1.69e+05 --
D104HN-D104HB* 8.320 2.823 2.93e+05 --
A90HB#-A90HA 1.655 4.207 7.12e+05 --
A90HB#-F91HA 1.653 4.411 8.59e+04 --
A114HB#-A114HA 1.253 4.098 7.67e+05 --
A114HB#-R111HA 1.251 3.929 1.76e+05 --
A114HB#-W110HA 1.253 4.451 3.68e+04 --
F91HE*-F91HZ 7.237 7.122 7.85e+05 --
F91HE*-K92HA 7.242 3.910 4.88e+04 --
i weź to
A90HB#-A90HA 1.655 4.207 7.12e+05 --
A90HB#-F91HA 1.653 4.411 8.59e+04 --
F91HE*-F91HZ 7.237 7.122 7.85e+05 --
F91HE*-K92HA 7.242 3.910 4.88e+04 --
D104HN-D104HA 8.320 4.521 1.69e+05 --
D104HN-D104HB* 8.320 2.823 2.93e+05 --
A114HB#-A114HA 1.253 4.098 7.67e+05 --
A114HB#-R111HA 1.251 3.929 1.76e+05 --
A114HB#-W110HA 1.253 4.451 3.68e+04 --
Oznacza to, że posortuj numerycznie według drugiego i kolejnych znaków pierwszej sekwencji niepustych znaków w wierszu.
text-processing
files
sort
Edith
źródło
źródło
sort
polecenie?Odpowiedzi:
Sortuje
n
losowo na oczach,k
zaczynając od2
drugiego znaku pola1
st ignorując wiodąceb
znaki (i kończąc na końcu linii, ale to nie ma znaczenia dla sortowania numerycznego, który uwzględnia tylko początkową sekwencję cyfr dziesiętnych).Zauważ, że jeśli jest remis, na przykład pomiędzy tymi dwiema liniami:
Następnie kolejność będzie oparta na ostatecznym sortowaniu, w którym dwie linie są w pełni porównywane jako łańcuchy.
W niektórych lokalizacjach puste miejsca byłyby w pierwszej kolejności ignorowane w celu porównania ciągów, w którym to przypadku F91 pojawiłby się przed K92 (jak
F
poprzednioK
). W przypadku innych, takich jak ustawienia regionalne C, puste miejsca nie byłyby ignorowane, a K92 pojawiałby się przed F91 (spacja sortuje się wcześniejF
).W przypadku ostatecznego sortowania, które ignoruje wiodące spacje, niezależnie od ustawień regionalnych, możesz:
Ten
1b
posortowałby (po remisie na pierwszym kluczu) leksykalnie na odcinku linii, który zaczyna się od pierwszego pola, ignorując wiodące spacje.źródło