The UNIX and Linux Forums  


Go Back   UNIX og Linux Forums > Top Forums > Shell Programmering og Scripting
.
google unix.com



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.

Mere UNIX og Linux Forum Emner du måske kan finde Helpful
Tråd Thread Starter Forum Svar Last Post
brug for hjælp til at sortere ali560045 Shell Programmering og Scripting 2 12-04-2007 07:38 AM
sortere prasathlogu UNIX for dummyer Spørgsmål & svar 1 10-08-2007 07:56 AM
sortere hjælpe unics Shell Programmering og Scripting 14 04-30-2007 08:28 AM
du-h | slags? fongthai Shell Programmering og Scripting 6 11-02-2006 08:59 PM
Sorter Hjælp! kev112 Shell Programmering og Scripting 3 05-30-2005 04:13 PM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Søg denne tråd Rate Thread Display Modes
  #1 (permalink)  
Old 12-06-2007
shotronix shotronix is offline
Registreret Bruger
  
 

Join Date: Dec 2007
Stillinger: 2
sortere og opsummere

Hi Guys,

Jeg har en fil i UNIX med dubletter, jeg har brug sortere kommandoen som nedenfor til at slette dubletter baseret på de centrale positioner / kolonner, men nu er jeg ikke ønsker at "slette" dubletter men opsummere nogle af de vigtige numeriske kolonner.

Har virkelig brug for hjælp ... HASTER!

Thanks in advance.

sort-k 1.1,1.92-u-fil> outfile
  #2 (permalink)  
Old 12-06-2007
Smiling Dragon's Avatar
Smilende Dragon Smiling Dragon is offline Forum Advisor  
Uorganiseret Bruger
  
 

Join Date: Nov 2007
Location: New Zealand
Posts: 922
Question

Jeg tror ikke sortere betyder, at indbygget ...

Hvis du kan give et eksempel input og et eksempel på output viser, hvad du vil have gjort, er det sikkert instrukser.
  #3 (permalink)  
Old 12-06-2007
shotronix shotronix is offline
Registreret Bruger
  
 

Join Date: Dec 2007
Stillinger: 2
Her er et eksempel:

1288M99G14 ALA201001 +00000000,000 +00000005,000
1288M99G14 ALA201001 +00000000,000 +00000005,000
1288M99G14 ALB201001 +00000005,000 +00000000,000
1288M99G14 ALA201002 +00000000,000 +00000017,000
1288M99G14 ALB201001 +00000017,000 +00000000,000
1288M99G14 ALA201002 +00000000,000 +00000005,000

Output:

1288M99G14 ALA201001 +00000000,000 +00000010,000
1288M99G14 ALB201001 +00000023,000 +00000000,000
1288M99G14 ALA201002 +00000000,000 +00000023,000

Så opsummere ved første 2 felter
  #4 (permalink)  
Old 12-06-2007
Smiling Dragon's Avatar
Smilende Dragon Smiling Dragon is offline Forum Advisor  
Uorganiseret Bruger
  
 

Join Date: Nov 2007
Location: New Zealand
Posts: 922
Post

Ah, så det er alt dem ...

Lyder som et awk eller perl løsning ville være den vej at gå.
Du kan derefter rør den ouput gennem slags for at få den rækkefølge, du ønsker. Du har allerede fået den slags højre (uden-u selvfølgelig), så jeg vil fokusere på i alt side ...

Da jeg ikke rigtig med awk, vil jeg prøve perl, Jeg er sikker på en af de awk wizzes rundt her kan tilbyde en løsning til at


Code:
#!/bin/perl -w

while (<>) {
  ($name,$left,$right)=split(/\+/);
  $vals{$name}{"left"}+=$left;
  $vals{$name}{"right"}+=$right;
}

foreach $name (keys %vals) {
  printf "%s\+%012.3f\+%012.3f\n",${name},$vals{$name}{'left'},$vals{$name}{'right'};
}

  #5 (permalink)  
Old 12-07-2007
ranjithpr ranjithpr is offline
Registreret Bruger
  
 

Join Date: Nov 2007
Stillinger: 157
Prøv at dette ene

filename \u003d $ 1
sort $ filename |
awk 'BEGIN (FS \u003d"+"; prev_key1 \u003d ""; prev_key2 \u003d 0; prev_key2 \u003d 0; første \u003d 1;)
(
# Print "asdfdafsdfsdfasf |" prev_key1 "|" $ 1
if ($ 1 \u003d\u003d prev_key1)
(
prev_key2 + \u003d $ 2;
prev_key3 + \u003d $ 3;
)
anden
(
if (! først)
printf ( "% 20.20s +% 08.3f +% 08.3f \ n", prev_key1, prev_key2, prev_key3);
else first \u003d 0;
prev_key1 \u003d $ 1;
prev_key2 \u003d $ 2;
prev_key3 \u003d $ 3;
)
)
END (printf ( "% 20.20s +% 08.3f +% 08.3f \ n", prev_key1, prev_key2, prev_key3);) '
  #6 (permalink)  
Old 12-09-2007
Smiling Dragon's Avatar
Smilende Dragon Smiling Dragon is offline Forum Advisor  
Uorganiseret Bruger
  
 

Join Date: Nov 2007
Location: New Zealand
Posts: 922
Citat:
Oprindeligt Indsendt af ranjithpr View Post
filename \u003d $ 1
sort $ filename|
awk 'BEGIN (FS \u003d"+"; prev_key1 \u003d ""; prev_key2 \u003d 0; prev_key2 \u003d 0; første \u003d 1;)
...
Den slags skal være smartere, var OP ikke sortering af det første element (men de har at smule arbejde så jeg forlod det ud af opløsningen )
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




Alle tidspunkter er GMT -4. Den tid er nu 08:09 AM.


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 Content Copyright © 1993-2009. Alle rettigheder Reserved.Ad Management ved RedTyger

Content Relevant webadresser ved vBSEO 3.2.0