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
plus important de trouver des répertoires dans un système de fichiers GKnight De programmation et de script Shell 8 04-30-2008 08:58 PM
Le plus grand dispositif de vidage est trop petite click007 AIX 4 10-26-2007 05:08 AM
plus important de trouver le fichier mohan705 De programmation et de script Shell 15 07-04-2007 02:34 AM
5o trouver le plus gros fichiers d'un répertoire igidttam Systèmes de fichiers, disques et mémoire 8 05-16-2007 01:20 PM
dossier de plus grande taille dans pwd rameshparsa De programmation et de script Shell 4 11-22-2005 12:25 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 03-15-2008
jkl_jkl jkl_jkl is offline
Registered User
  
 

Join Date: Aug 2007
Posts: 46
plus grand domaine, awk, aider

Salut tous,

Mon fichier ressemble à cela:

Code:
$ cat max.txt
abcd:1982:a
efghij:1980:e
klmn:1923:k
opqrst:1982:o
Je dois trouver le plus grand champ et la ligne correspondante. c'est-à-dire

Produit nécessaire:

Code:
efghij efghij:1980:e
opqrst opqrst:1982:o
HTH,
jkl_jkl
  #2 (permalink)  
Old 03-15-2008
yunccll yunccll is offline
Registered User
  
 

Join Date: Mar 2008
Posts: 23
essayez le code suivant:
Code:
#!/bin/bash

#constant
INFILE="max.txt"

#core script
awk ' BEGIN { OFS=FS=":"; cur=max=0; seen=""}
        {
           cur = length($1)
           if(cur > max ){
              seen = $1 " " $0
           }
           else if(cur == max){
              seen = seen "\n"  $1 " " $0
           }
        }
        END { print seen }'  $INFILE
#exit normally
exit 0
. Aaron
  #3 (permalink)  
Old 03-15-2008
jkl_jkl jkl_jkl is offline
Registered User
  
 

Join Date: Aug 2007
Posts: 46
aaron,

Elle imprime seulement

Code:
opqrst opqrst:1982:o
Et pas

Code:
efghij efghij:1980:e
opqrst opqrst:1982:o
c'est-à-dire si il ya 2 champs plus longue, l'impression de la dernière.
  #4 (permalink)  
Old 03-15-2008
fpmurphy's Avatar
fpmurphy fpmurphy is offline Forum Staff  
Modérateur
  
 

Join Date: Dec 2003
Lieu: Florida
Posts: 1,924
Il suffit d'ajouter "max \u003d actu» et les deux lignes sont imprimées que vous le souhaitez.

Code:
awk ' BEGIN { OFS=FS=":"; cur=max=0; seen=""}
        {
           cur = length($1)
           if (cur > max ) {
              seen = $1 " " $0
              max = cur
           } else if (cur == max) {
              seen = seen "\n"  $1 " " $0
           }
        }
        END { print seen }'  $INFILE
  #5 (permalink)  
Old 03-15-2008
Klashxx's Avatar
Klashxx Klashxx is offline Forum Advisor  
HP-UX/Linux/Oracle
  
 

Join Date: Feb 2006
Lieu: Almería, Espagne
Messages: 393
Un autre sol:
Code:
awk '{l=length($1);if(l>=max){a[$1" "$0]=l;max=l}}END{for(i in a)if (a[i]==max)print i}' FS=':' file
  #6 (permalink)  
Old 03-16-2008
yunccll yunccll is offline
Registered User
  
 

Join Date: Mar 2008
Posts: 23
Citation:
Posté par jkl_jkl View Post
aaron,

Elle imprime seulement

Code:
opqrst opqrst:1982:o
Et pas

Code:
efghij efghij:1980:e
opqrst opqrst:1982:o
c'est-à-dire si il ya 2 champs plus longue, l'impression de la dernière.
oh, pardon, j'ai oublié le "max \u003d actu", quand j'ai mon code d'entrée dans la réponse!

. Aaron
  #7 (permalink)  
Old 11-29-2008
bashisthebest bashisthebest is offline
Registered User
  
 

Date d'inscription: novembre 2008
Messages: 1
Comment pourriez-vous trouver le terrain le plus bas et la ligne correspondante?

Salut je me demandais comment vous vous faire l'inverse, trouver le sens et le champ plus bas la ligne correspondante?

Merci d'avance.
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 10:34 AM.


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