![]() |
|
|
google unix.com
|
|||||||
| Forums | Registrer | Forum Rules | Lenker | Album | FAQ | Medlemsliste | Kalender | Søke | Dagens innlegg | Marker forumene som lest |
| UNIX for Dummies Spørsmål og svar Hvis du er usikker på hvor du skal legge inn en UNIX-eller Linux-spørsmålet, legger den her. Alle UNIX og Linux newbies velkommen! |
Mer UNIX og Linux Forum Emner Du kan finne nyttig
|
||||
| Tråd | Tråd startet | Forum | Svar | Siste innlegg |
| Sorter filen alfabetisk og numerisk | mrodrig | UNIX for Dummies Spørsmål og svar | 2 | 05-19-2008 10:46 |
| Sorter filen linje for linje alfabetisk | H2OBoodle | Shell programmering og Skripting | 11 | 02-11-2008 07:27 |
| Hvordan sortere desimalverdier i bash | ahjiefreak | Shell programmering og Skripting | 1 | 01-21-2008 09:25 |
| finne spesifikke verdier i en i en fil | Gerry405 | UNIX for Dummies Spørsmål og svar | 3 | 11-21-2005 11:37 |
| Hvordan Sorter filer basert på forhåndsdefinerte verdier.? | p_prathaban | Shell programmering og Skripting | 2 | 02-17-2004 11:39 |
![]() |
|
|
LinkBack | Thread Tools | Søk i denne tråden |
Vurdering:
|
Visningsmoduser |
|
|
|
||||
|
Hvordan sortere alfabetisk etter å finne verdier
Jeg har en liste over personer i bruk stokk og må skrive navnene og telefonnumrene til folk med over 500 pålogginger. Jeg vil også gjerne vise disse navnene alfabetisk.
Jeg har deres totale påloggingsinformasjon satt til en variabel ved navn totalt. Så langt har jeg veldig lite i mitt awk skriften å gjøre dette: FS \u003d ":" (if (sum> 500) print $ 1, $ 2) ($ 1 er både fornavn og etternavn, $ 2 blir telefonnummer) Det er mer til skriptet enn dette, men over er den aktuelle delen. Dette bare ut ett av navnene dessverre, selv om min datafilen har klart andre med totalsummer> 500. Noen råd eller tips her? Takk! |
|
||||
|
Høres ut som problemet ville være i andre deler av logikken. Er totalt beregnet en gang for hele filen og du kjører den igjen og igjen for hver bruker, eller hvordan du ende opp med det totalt? En vanlig teknikk er å holde en rekke totaler hvor tastene er brukere, slik at du bare nødt til å løpe over filen gang. Code:
awk -F : '{ if (++total[$1] > 500) print $1, $2 }' file
(Dette vil skrive ut flere ganger, én gang for hver post når den totale overskrides. Finne ut hvordan du unngår som er igjen som en øvelse.) Når du får den til å skrive hva du vil, bare rør det utgang til sortere. Sist endret av æra; 04-27-2008 på 05:58.. Reason: Kode eksempel |
|
||||
|
Så du har en rad per bruker, ikke en stokk med en rad per logge inn? Du er ikke skriver til slutt erklæringen da, er du? END bare blir evaluert en gang, på slutten av filen.
|
![]() |
| Hugseliste |
| Thread Tools | Søk i denne tråden |
| Visningsmoduser | Ranger denne tråden |
|
|