The UNIX and Linux Forums  
Hej og Velkommen fra USA til UNIX og Linux Forums! Tak for dit besøg og deltager i vores globale samfund.

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
finde største biblioteker i et filsystem GKnight Shell Programmering og Scripting 8 04-30-2008 08:58 PM
Den største dump enheden er for lille click007 AIX 4 10-26-2007 05:08 AM
finde største fil mohan705 Shell Programmering og Scripting 15 07-04-2007 02:34 AM
finde 5o største filer i en mappe igidttam Filsystemer, disketter og Hukommelse 8 05-16-2007 01:20 PM
fil af største størrelse i pwd rameshparsa Shell Programmering og Scripting 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 Søg denne tråd Rate Thread Display Modes
  #1 (permalink)  
Old 03-15-2008
jkl_jkl jkl_jkl is offline
Registreret Bruger
  
 

Join Date: Aug 2007
Stillinger: 46
største område, awk, hjælpe

Hi All,

Min filen på denne måde:

Code:
$ cat max.txt
abcd:1982:a
efghij:1980:e
klmn:1923:k
opqrst:1982:o
Jeg er nødt til at finde ud af det største første felt, og de tilsvarende linje. dvs

Output kræves:

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

Join Date: Mar 2008
Stillinger: 23
Prøv denne kode:
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
Registreret Bruger
  
 

Join Date: Aug 2007
Stillinger: 46
Aaron,

Det udskriver kun

Code:
opqrst opqrst:1982:o
Og ikke

Code:
efghij efghij:1980:e
opqrst opqrst:1982:o
dvs hvis der er 2 længste områder, dets trykning den sidste.
  #4 (permalink)  
Old 03-15-2008
fpmurphy's Avatar
fpmurphy fpmurphy is offline Forum Staff  
Moderator
  
 

Join Date: Dec 2003
Beliggenhed: Florida
Indlæg: 1.924
Bare tilføj "max \u003d øje", og begge linjer kan printes ud, som du ønsker.

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
Beliggenhed: Almería, Spanien
Posts: 393
En anden 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
Registreret Bruger
  
 

Join Date: Mar 2008
Stillinger: 23
Citat:
Oprindeligt Indsendt af jkl_jkl View Post
Aaron,

Det udskriver kun

Code:
opqrst opqrst:1982:o
Og ikke

Code:
efghij efghij:1980:e
opqrst opqrst:1982:o
dvs hvis der er 2 længste områder, dets trykning den sidste.
Åh, undskyld, jeg har glemt "max \u003d øje", når jeg input min kode i svaret!

. Aaron
  #7 (permalink)  
Old 11-29-2008
bashisthebest bashisthebest is offline
Registreret Bruger
  
 

Join Date: Nov 2008
Stillinger: 1
Hvordan vil du finde den laveste område og den tilsvarende linje?

Hej Jeg tænkte på, hvordan du ville gøre det modsatte betydning finde den laveste område og den tilsvarende linje?

thanks in advance.
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 03:03 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