|
| Sort lexicographically Fra : JoeDoe |
Dato : 11-09-09 01:30 |
|
Jeg har følgende tekst:
Hej TxtA1
Dette TxtA2
Er TxtA11
En TxtA3
Test TxtB10
Af TxtB1
Sort TxtB2
Hvordan får jeg dem sorteret således:
Hej TxtA1
Dette TxtA2
En TxtA3
Er TxtA11
Af TxtB1
Sort TxtB2
Test TxtB10
Dvs. sorteret efter [A1] til [B10].
Jeg kan ikke lige gennemskue om "sort" kan klare opgaven eller om man
skal ud i at splitte strengen op?
| |
Peter Makholm (11-09-2009)
| Kommentar Fra : Peter Makholm |
Dato : 11-09-09 12:21 |
|
JoeDoe <joedoe10@gmail.com> writes:
> Dvs. sorteret efter [A1] til [B10].
>
> Jeg kan ikke lige gennemskue om "sort" kan klare opgaven eller om man
> skal ud i at splitte strengen op?
Det er ikke let da din nøgle er en blanding af tekst der skal sorteres
leksikalsk og tal der skal sorteres numerisk.
At det så også er svært at fange din egentlige nøgle er et andet
problem. Men i det konkrete tilfælde kan det ignoreres og lade den
sortere på [TxtA1] til [TxtB10].
//Makholm
| |
Jens Henrik Leonhard~ (11-09-2009)
| Kommentar Fra : Jens Henrik Leonhard~ |
Dato : 11-09-09 17:09 |
|
JoeDoe wrote:
> Jeg har følgende tekst:
>
> Hej TxtA1
> Dette TxtA2
> Er TxtA11
> En TxtA3
> Test TxtB10
> Af TxtB1
> Sort TxtB2
>
> Hvordan får jeg dem sorteret således:
>
> Hej TxtA1
> Dette TxtA2
> En TxtA3
> Er TxtA11
> Af TxtB1
> Sort TxtB2
> Test TxtB10
>
> Dvs. sorteret efter [A1] til [B10].
sort -g -k 2
Det sorter på andet felt, med blank som separator, og behandler tal som
du ønsker.
Den sorter efter TxtA1 til TxtB10.
/Jens Henrik
| |
Mogens Kjaer (12-09-2009)
| Kommentar Fra : Mogens Kjaer |
Dato : 12-09-09 16:10 |
|
On 09/11/2009 06:08 PM, Jens Henrik Leonhard Jensen wrote:
> sort -g -k 2
....
Hm, jeg får:
$ sort -g -k 2 < t1.dat
Af TxtB1
Dette TxtA2
En TxtA3
Er TxtA11
Hej TxtA1
Sort TxtB2
Test TxtB10
$ sort --version
sort (GNU coreutils) 7.2
....
Mogens
--
Mogens Kjaer, Carlsberg A/S, Computer Department
Gamle Carlsberg Vej 10, DK-2500 Valby, Denmark
Phone: +45 33 27 53 25, Fax: +45 33 27 47 08
Email: mk@crc.dk Homepage: http://www.crc.dk
| |
Niels Baggesen (15-09-2009)
| Kommentar Fra : Niels Baggesen |
Dato : 15-09-09 15:33 |
|
Jens Henrik Leonhard Jensen <jhlj@statsbiblioteket.dk> wrote:
> sort -g -k 2
> Det sorter på andet felt, med blank som separator, og behandler tal som
> du ønsker.
men behandler ikke A B rækken korrekt.
Prøv med
sort -k 2.5,2.5 -k 2.6n
(jeg synes også selv at tegnpositionerne er een for høje, men det virker på
min Centos 5.3 med sort 5.97)
/Niels
--
Niels Baggesen -- @home -- Århus -- Denmark -- niels@baggesen.net
The purpose of computing is insight, not numbers -- R W Hamming
| |
Jørgen Heesche (12-09-2009)
| Kommentar Fra : Jørgen Heesche |
Dato : 12-09-09 21:45 |
|
JoeDoe wrote:
> Jeg har følgende tekst:
>
> Hej TxtA1
> Dette TxtA2
> Er TxtA11
> En TxtA3
> Test TxtB10
> Af TxtB1
> Sort TxtB2
>
> Hvordan får jeg dem sorteret således:
>
> Hej TxtA1
> Dette TxtA2
> En TxtA3
> Er TxtA11
> Af TxtB1
> Sort TxtB2
> Test TxtB10
>
> Dvs. sorteret efter [A1] til [B10].
>
Det kan man ikke.
Den sortering du ønsker er forøvrigt ikke lexicographically.
Sorteret lexicographically ser det sådan ud:
Hej TxtA1
Er TxtA11
Dette TxtA2
En TxtA3
Af TxtB1
Test TxtB10
Sort TxtB2
Den sortering fås med: 'sort -dk 2'
> Jeg kan ikke lige gennemskue om "sort" kan klare opgaven eller om man
> skal ud i at splitte strengen op?
--
Med venlig hilsen
Jørgen Heesche
mailto:heesche@webspeed.dk
| |
JoeDoe (13-09-2009)
| Kommentar Fra : JoeDoe |
Dato : 13-09-09 23:30 |
|
> > Jeg kan ikke lige gennemskue om "sort" kan klare opgaven eller om man
> > skal ud i at splitte strengen op?
>
> Det er ikke let da din nøgle er en blanding af tekst der skal sorteres
> leksikalsk og tal der skal sorteres numerisk.
>
> At det så også er svært at fange din egentlige nøgle er et andet
> problem. Men i det konkrete tilfælde kan det ignoreres og lade den
> sortere på [TxtA1] til [TxtB10].
Nej ikke helt fordi jeg så får denne sortering:
sort +1 mytxtfile.txt
Hej TxtA1
Er TxtA11
Dette TxtA2
En TxtA3
Af TxtB1
Test TxtB10
Sort TxtB2
Kan man ikke substring "Txt" ud på én eller anden måde og derefter
sortere på det resterende?
| |
Thorbjørn Ravn Ander~ (14-09-2009)
| Kommentar Fra : Thorbjørn Ravn Ander~ |
Dato : 14-09-09 06:49 |
|
JoeDoe skrev:
> Kan man ikke substring "Txt" ud på én eller anden måde og derefter
> sortere på det resterende?
Problemet er at din nøgle ikke er i orden.
A11 er større end A3 og det er der ikke nogen indbygget sammenligning
der kan håndtere.
--
Thorbjørn Ravn Andersen "...plus... Tubular Bells!"
| |
N/A (14-09-2009)
| Kommentar Fra : N/A |
Dato : 14-09-09 06:49 |
|
| |
JoeDoe (16-09-2009)
| Kommentar Fra : JoeDoe |
Dato : 16-09-09 00:19 |
|
> Prøv med
> sort -k 2.5,2.5 -k 2.6n
>
> (jeg synes også selv at tegnpositionerne er een for høje, men det virker på
> min Centos 5.3 med sort 5.97)
Mange tak, det er lige hvad der skulle til:
srv@dir > cat mytxt | sort -k 2.5,2.5 -k 2.6n
Hej TxtA1
Dette TxtA2
En TxtA3
Er TxtA11
Af TxtB1
Sort TxtB2
Test TxtB10
Men sandt at sige forstår jeg ikke helt sætningen.
"man sort":
POS is F[.C][OPTS], where F is the field number and C
the character position in the field. 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.
Så vidt jeg kan forstå er det følgende:
sort -k 2.5,2.5 -k 2.6n
-k 2.5,2.5
Sortér først på dette output.
Start ved kolonne 2, tegn 5
Slut ved kolonne 2, tegn 5 (det er det samme???)
-k 2.6n
Sortér sekundært på dette output.
Start ved kolonne 2, tegn 6 og sortér nummérisk.
Jeg forstår ikke første "-k" statement og ærligt talt kan jeg heller
ikke helt få tegnene til at stemme?
Men tak for det - det fungere glimrende til lige disse linier, så skal
jeg bare lige forstå det for at rette det til mine reelle linier
| |
Mogens Kjaer (16-09-2009)
| Kommentar Fra : Mogens Kjaer |
Dato : 16-09-09 07:32 |
|
On 09/16/2009 08:19 AM, JoeDoe wrote:
> -k 2.5,2.5
> Sortér først på dette output.
> Start ved kolonne 2, tegn 5
> Slut ved kolonne 2, tegn 5 (det er det samme???)
>
> -k 2.6n
> Sortér sekundært på dette output.
> Start ved kolonne 2, tegn 6 og sortér nummérisk.
>
> Jeg forstår ikke første "-k" statement og ærligt talt kan jeg heller
> ikke helt få tegnene til at stemme?
>
Den første -k 2.5,2.5 sorterer på A'et eller B'et (ét tegn).
Den næste -k 2.6n sorterer på tallene efter A'et eller B'et.
Det er ikke klart ud fra man-siden i CentOS, men blanktegnet før
Txt tæller med. Fra en nyere man sort side (Fedora 11):
....
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.
....
Mogens
--
Mogens Kjaer, Carlsberg A/S, Computer Department
Gamle Carlsberg Vej 10, DK-2500 Valby, Denmark
Phone: +45 33 27 53 25, Mobile: +45 22 12 53 25
Email: mk@crc.dk Homepage: http://www.crc.dk
| |
N/A (16-09-2009)
| Kommentar Fra : N/A |
Dato : 16-09-09 07:32 |
|
| |
JoeDoe (16-09-2009)
| Kommentar Fra : JoeDoe |
Dato : 16-09-09 23:31 |
|
> > -k 2.5,2.5
> > Sortér først på dette output.
> > Start ved kolonne 2, tegn 5
> > Slut ved kolonne 2, tegn 5 (det er det samme???)
>
> > -k 2.6n
> > Sortér sekundært på dette output.
> > Start ved kolonne 2, tegn 6 og sortér nummérisk.
>
> > Jeg forstår ikke første "-k" statement og ærligt talt kan jeg heller
> > ikke helt få tegnene til at stemme?
>
> Den første -k 2.5,2.5 sorterer på A'et eller B'et (ét tegn).
>
> Den næste -k 2.6n sorterer på tallene efter A'et eller B'et.
>
> Det er ikke klart ud fra man-siden i CentOS, men blanktegnet før
> Txt tæller med. Fra en nyere man sort side (Fedora 11):
>
> ...
> 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.
Vil der være en genial måde, at sortere en IP adresse liste på med
sort? Det er jo ikke helt så statisk som ovenstående eksempel, da det
kan være alt lige fra 7 tegn lang til 15 tegn lang (og måske endda med
0 foran, hvis man skal tage højde for det?).
| |
Niels Baggesen (17-09-2009)
| Kommentar Fra : Niels Baggesen |
Dato : 17-09-09 09:04 |
|
JoeDoe <joedoe10@gmail.com> wrote:
> Vil der være en genial måde, at sortere en IP adresse liste på med
> sort? Det er jo ikke helt så statisk som ovenstående eksempel, da det
> kan være alt lige fra 7 tegn lang til 15 tegn lang (og måske endda med
> 0 foran, hvis man skal tage højde for det?).
sort -t . -k1,1n -k2,2n -k3,3n -k4,4n
/Niels
--
Niels Baggesen -- @home -- Århus -- Denmark -- niels@baggesen.net
The purpose of computing is insight, not numbers -- R W Hamming
| |
JoeDoe (17-09-2009)
| Kommentar Fra : JoeDoe |
Dato : 17-09-09 23:16 |
|
> > Vil der være en genial måde, at sortere en IP adresse liste på med
> > sort? Det er jo ikke helt så statisk som ovenstående eksempel, da det
> > kan være alt lige fra 7 tegn lang til 15 tegn lang (og måske endda med
> > 0 foran, hvis man skal tage højde for det?).
>
> sort -t . -k1,1n -k2,2n -k3,3n -k4,4n
Sandelig ja - det fungere som en drøm, mange tak
| |
Niels Baggesen (18-09-2009)
| Kommentar Fra : Niels Baggesen |
Dato : 18-09-09 07:55 |
|
JoeDoe <joedoe10@gmail.com> wrote:
> Sandelig ja - det fungere som en drøm, mange tak
Har du overvejet:
man sort
info sort
;-?
/Niels
--
Niels Baggesen -- @home -- Århus -- Denmark -- niels@baggesen.net
The purpose of computing is insight, not numbers -- R W Hamming
| |
|
|