Go Back   UNIX og Linux Forums > Top Forums > Shell Programmering og Scripting
.
Google Site



Shell Programmering og Scripting Post spørgsmål om ksh, CSH, SH, Bash, Perl, PHP, SED, AWK og ANDRE shell scripts og Shell scriptsprog her.

Closed Thread
English Japanese Spanish French German Portuguese Italian Powered by Powered by Google
 
Thread Tools Søg denne tråd Rate Thread Display Modes
  #1 (permalink)  
Old 09-15-2005
Registreret Bruger
 

Join Date: Sep 2005
Stillinger: 12
Red face sortere data

Hej!
Jeg prøver at sortere en file.dat med den slags kommando. Dataene ved file.dat svarer til de data, der er nedenfor:

100,000
99,000
110,000

55,000
113,000
33,000

25,000
9,000
15,000

Det er relativt let at sortere data i stigende eller faldende orden, men problemet er, at adskille tomme rækker mellem blokkene er lagt på toppen af sorteret fil. Jeg ønsker at beholde den tomme rækker og sortere data blokke særskilt, som denne:

99,000
100,000
110,000

33,000
55,000
113,000

9,000
15,000
25,000

Kan nogen venligst hjælpe mig?
Og desuden må jeg nævne, at jeg er helt nye på UNIX-scripting, så prøv at forklare i et letforståeligt engelsk !


bjorb
Sponsorerede links
  #2 (permalink)  
Old 09-15-2005
Ygor's Avatar
Ygor Ygor is offline Forum Staff  
Moderator
 

Join Date: oktober 2003
Beliggenhed: -31.96,115.84
Indlæg: 1.431
Got gawk?
Code:
gawk 'BEGIN{RS=""}{n=split($0,a);asort(a);for(i=0;i<=n;i++) print a[i] }' file.dat

  #3 (permalink)  
Old 09-15-2005
Registreret Bruger
 

Join Date: Jul 2005
Stillinger: 137

Code:
ruby -00ne'puts split("\n").sort_by{|x|x.to_f};puts' file


Sidst redigeret af futurelet; 09-15-2005 på 03:23 AM.. Årsag: en smule kortere
  #4 (permalink)  
Old 09-15-2005
Registreret Bruger
 

Join Date: Sep 2005
Stillinger: 12
Jeg er for doven

Hehe!
Først og fremmest vil jeg gerne give min påskønnelse for et hurtigt svar.

Uden at vide, hvad dælen, at koden fra Ygor betød jeg prøvet det i mit script. Det syntes at arbejde delvist i mit tilfælde, men som følge af min egen lazyness det ikke give mig det resultat, jeg har brug for.

Datasættet er virkelig i dette format:

100,000 23,000 150,000
99,000 83,000 369,000
110,000 15,000 123,000

55,000 105,000 69,000
113,000 7,000 78,000
33,000 89,000 63,000

25,000 23,000 23,000
9,000 63,000 81,000
15,000 38,000 23,000


Kolonnerne repræsenterer x-, y-og z-koordinater.
Jeg ønsker at sortere kolonner med x-og y-koordinater i stigende orden.
Data er også formodes at være skrevet tilbage til Data.dat
Jeg beklager ulejligheden og ydmygt bede Dem om at hjælpe mig igen.

Det er også i min interesse for at forstå de potentielle kode, som er givet.
Hvor kan jeg få en god tutorial om gawk?

Hilsen
bjorb
  #5 (permalink)  
Old 09-15-2005
Registreret Bruger
 

Join Date: Jul 2005
Stillinger: 137
Citat:
Oprindeligt Indsendt af bjorb
Datasættet er virkelig i dette format:

100,000 23,000 150,000
99,000 83,000 369,000
110,000 15,000 123,000

55,000 105,000 69,000
113,000 7,000 78,000
33,000 89,000 63,000

25,000 23,000 23,000
9,000 63,000 81,000
15,000 38,000 23,000


Kolonnerne repræsenterer x-, y-og z-koordinater.
Jeg ønsker at sortere kolonner med x-og y-koordinater i stigende orden.
Du middelændringen


Code:
100.000   23.000    150.000
99.000    83.000    369.000
110.000   15.000    123.000

til dette?


Code:
99.000    15.000    159.000
100.000   23.000    369.000
110.000   83.000    123.000

  #6 (permalink)  
Old 09-15-2005
Registreret Bruger
 

Join Date: Sep 2005
Stillinger: 12
forenklet behov

Efter at have gennemgået mine behov Jeg har indset, at det vil være tilstrækkeligt til at sortere data kun den kolonne med y-koordinater:

Fra
100,000 23,000 150,000
99,000 83,000 369,000
110,000 15,000 123,000

til
110,000 15,000 123,000
100,000 23,000 150,000
99,000 83,000 369,000

Hvordan kan jeg gøre dette?

Hilsen

bjorb

Sidst redigeret af bjorb; 09-15-2005 på 09:04 AM.. Årsag: Glemt til rent faktisk at bede om hjælp ...
  #7 (permalink)  
Old 09-15-2005
Registreret Bruger
 

Join Date: Jul 2005
Stillinger: 137

Code:
ruby -00ne'puts split("\n").sort_by{|x|x[/\s\S+/].to_f};puts' file

Sponsorerede links
Closed Thread

Bogmærker

Thread Tools Søg denne tråd
Søg denne tråd:

Avanceret søgning
Display Modes Bedøm denne tråd
Bedøm denne tråd:

Udstationering Regler
Du kan ikke post nye tråde
Du kan ikke post svar
Du kan ikke post vedhæftede filer
Du kan ikke redigere dine indlæg

BB-kode er
Smilies er
[IMG] koden er
HTML-koden er Slukket
Trackbacks er
Pingbacks er
Refbacks er Slukket


Mere UNIX og Linux Forum Emner du måske kan finde Helpful
Tråd Thread Starter Forum Svar Last Post
hvordan man kan sortere og tælle unikke data på én gang? amatuer_lee_3 Shell Programmering og Scripting 16 04-14-2009 11:22 PM
hvordan man kan læse data fra et Excel-ark og bruge disse data som variabel i UNIX c Anne Grace UNIX for Advanced & Ekspertsøgning Brugere 1 03-03-2008 07:21 AM
hvordan man kan kontrollere, at kopieres data til fjerntliggende system er identisk med de lokale data. ynilesh Shell Programmering og Scripting 3 01-31-2008 08:55 AM
Script til at sortere data wizardy_maximus Shell Programmering og Scripting 1 11-21-2007 04:30 AM
Howto opsamling af data fra rs232port andpull data i Oracle Database-9i automatisk boss UNIX for dummyer Spørgsmål & svar 1 09-23-2007 03:35 AM



Alle tidspunkter er GMT -4. Den tid er nu 05:22 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Oversættelser Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Indhold Copyright © 1993-2010. Alle rettigheder Reserved.Ad Management by RedTyger

Content Relevant webadresser ved vBSEO 3.2.0