spøjst problem med kommandoen sort
Jeg har lige opdaget en spøjs ting med sort.
Hvis jeg sorterer disse linjer:
Bliver outputtet
Hvordan får man sort til at sortere på plusserne også? Jeg ville gerne have en ren sortering på alle tegn, altså:
Hvis jeg sorterer disse linjer:
+ghi
+abc
def
Bliver outputtet
+abc
def
+ghi
Hvordan får man sort til at sortere på plusserne også? Jeg ville gerne have en ren sortering på alle tegn, altså:
+abc
+ghi
def
Kommentarer5
bekreftet
mens klassisk sort ikke har den adfærd.
$ sort test3
+abc
+ghi
def
Manualen siger ikke noget om at linux sort er anderledes en possix sort, så ja det er i den grad underligt. Hvis du vil have en løsning så er der altid perl's sort
Umiddelbart ignorere den,
#2
med directory mode under unix får du samme resultat som under linux. men her skal den netop iognorere +
$ sort -d test3
+abc
def
+ghi
perl sortere også "korrekt"
udsen@udsen2:~$ cat test4 | perl -we 'print sort '
+abc
+ghi
def
Fandt følgende side:
Hvor der var understående løsning, som hvertfald umiddelbart løser problemet. Har prøvet sådan rigtigt at forstå hvad det egentligt er -k kommandoen gør, men har ikke rigtigt kunnet fange de direkte, andet end at den bestemmer hvilket bogstav/position den skal sortere efter.
sort -k1.1,1.1 tekstfil
Fra "sort --help" om -k
-k, --key=POS1[,POS2] start a key at POS1 (origin 1), end it at POS2
(default end of line). See POS syntax below
POS is F[.C][OPTS], where F is the field number and C the character position
in the field; both are origin 1. If neither -t nor -b is in effect, characters
in a field are counted from the beginning of the preceding whitespace. OPTS is
one or more single-letter ordering options, which override global ordering
options for that key. If no key is given, use the entire line as the key.
hmm flere underligheder.
$
sort -d test3
+abc
def
+ghi
$ sort -dk1.1,1.1 test3
+abc
+ghi
def
det ser ud til at fortælle den kun at kigge på 1 tegn, tvinger den til at sortere på + istedet for at kigge på de alphanumeriske tegn.