The UNIX and Linux Forums  
Bonjour et bienvenu par les États-Unis à la UNIX et Linux Forums! Merci de votre visite et vous joindre à notre communauté mondiale.

Go Back   Les systèmes UNIX et Linux Forums > Top Forums > De programmation et de script Shell
.
google unix.com



De programmation et de script Shell Posez vos questions à propos de KSH, CSH, SH, BASH, PERL, PHP, SED, awk et d'autres scripts shell et les langages de script shell ici.

Plus d'UNIX et Linux Forum Sujets Vous trouverez peut-être utile
Fil Thread Starter Forum Réponses Last Post
besoin d'aide pour trier ali560045 De programmation et de script Shell 2 12-04-2007 07:38 AM
trier prasathlogu UNIX pour les nuls Questions et réponses 1 10-08-2007 07:56 AM
sorte d'aide unics De programmation et de script Shell 14 04-30-2007 08:28 AM
du-h | sort? fongthai De programmation et de script Shell 6 11-02-2006 08:59 PM
Trier Help! kev112 De programmation et de script Shell 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 Recherche sur ce Thread Rate Thread Modes d'affichage
  #1 (permalink)  
Old 12-06-2007
shotronix shotronix is offline
Registered User
  
 

Join Date: Dec 2007
Messages: 2
trier et résumer

Salut les gars,

J'ai un fichier sous UNIX avec des doublons, j'ai utiliser sort de commande ci-dessous pour supprimer les doublons sur la base des postes clés / colonnes, mais maintenant je ne tiens pas à "supprimer" doublons mais résumer par KEY numérique colonnes.

Vraiment besoin d'aide ... URGENT!

Merci d'avance.

sort-k 1.1,1.92-u fichier> outfile
  #2 (permalink)  
Old 12-06-2007
Smiling Dragon's Avatar
Souriant Dragon Smiling Dragon is offline Forum Advisor  
Désordonné utilisateur
  
 

Join Date: Nov 2007
Lieu: Nouvelle-Zélande
Messages: 922
Question

Je ne pense pas que ça sorte en natif ...

Si vous pouvez donner un exemple d'entrée et de sortie montrant un exemple de ce que vous voulez faire, c'est probablement des scripts.
  #3 (permalink)  
Old 12-06-2007
shotronix shotronix is offline
Registered User
  
 

Join Date: Dec 2007
Messages: 2
Voici l'exemple:

1288M99G14 ALA201001 00.000.000,000 00.000.005,000
1288M99G14 ALA201001 00.000.000,000 00.000.005,000
1288M99G14 ALB201001 00.000.005,000 00.000.000,000
1288M99G14 ALA201002 00.000.000,000 00.000.017,000
1288M99G14 ALB201001 00.000.017,000 00.000.000,000
1288M99G14 ALA201002 00.000.000,000 00.000.005,000

Sortie:

1288M99G14 ALA201001 00.000.000,000 00.000.010,000
1288M99G14 ALB201001 00.000.023,000 00.000.000,000
1288M99G14 ALA201002 00.000.000,000 00.000.023,000

Ainsi, résumer en 2 premiers champs
  #4 (permalink)  
Old 12-06-2007
Smiling Dragon's Avatar
Souriant Dragon Smiling Dragon is offline Forum Advisor  
Désordonné utilisateur
  
 

Join Date: Nov 2007
Lieu: Nouvelle-Zélande
Messages: 922
Post

Ah, c'est donc un montant total de leur ...

On dirait un awk ou perl solution serait la voie à suivre.
Vous pouvez ensuite le tuyau de sortie par le biais de sorte à obtenir l'ordre que vous voulez. Vous avez déjà le type à droite (sans le-u de cours) je vais donc l'accent sur un montant total de la partie ...

Comme je ne suis pas très bien avec awk, je vais essayer perl, Je suis sûr que l'un des awk wizzes ici peuvent offrir une solution pour que

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
Registered User
  
 

Join Date: Nov 2007
Messages: 157
Essayez celui-ci

filename \u003d $ 1
trier $ filename |
awk 'BEGIN (FS \u003d"+"; prev_key1 \u003d ""; prev_key2 \u003d 0; prev_key2 \u003d 0; first \u003d 1;)
(
# Print "asdfdafsdfsdfasf |" prev_key1 "|" $ 1
if ($ 1 \u003d\u003d prev_key1)
(
prev_key2 + \u003d $ 2;
prev_key3 + \u003d $ 3;
)
autre
(
if (! premier)
printf ( "% 20.20s + +% 08.3f% 08.3f \ n", prev_key1, prev_key2, prev_key3);
else premier \u003d 0;
prev_key1 \u003d $ 1;
prev_key2 \u003d $ 2;
prev_key3 \u003d $ 3;
)
)
FIN (printf ( "% 20.20s + +% 08.3f% 08.3f \ n", prev_key1, prev_key2, prev_key3);)
  #6 (permalink)  
Old 12-09-2007
Smiling Dragon's Avatar
Souriant Dragon Smiling Dragon is offline Forum Advisor  
Désordonné utilisateur
  
 

Join Date: Nov 2007
Lieu: Nouvelle-Zélande
Messages: 922
Citation:
Posté par ranjithpr View Post
filename \u003d $ 1
trier $ filename|
awk 'BEGIN (FS \u003d"+"; prev_key1 \u003d ""; prev_key2 \u003d 0; prev_key2 \u003d 0; first \u003d 1;)
...
Le tri doit être intelligent, le PO n'est pas le tri par le premier élément (mais ils n'ont que peu de travail et donc je reste en dehors de la solution )
Closed Thread

Bookmarks

Thread Tools Recherche sur ce Thread
Recherche sur ce Thread:

Recherche avancée
Modes d'affichage Rate this thread
Rate this thread:

Règles de messages
Tu mai pas de nouvelles discussions: nonoui
Tu mai pas envoyer des réponses:
Tu mai pas envoyer des pièces jointes
Tu mai pas modifier vos messages

BB code est Sur
Smilies sont Sur
[IMG] code est Sur
Le code HTML est Hors tension
Trackbacks sont Sur
Pingbacks sont Sur
Refbacks sont Sur




Toutes les heures sont au format GMT -4. Le temps est maintenant 03:28 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traductions Langue Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Les systèmes UNIX et Linux Forums Content Copyright © 1993-2009. Tous droits Reserved.Ad de gestion par RedTyger

Content Relevant URLs par vBSEO 3.2.0