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
Find summen af en kolonne ved hjælp awk ironhead3fan Shell Programmering og Scripting 8 01-30-2009 06:59 AM
Sådan kontrolleres Null-værdier i en fil kolonne efter kolonne, hvis kolonnerne er ikke NULLs Mandab Shell Programmering og Scripting 7 03-15-2008 09:57 AM
finde duplikateksemplaret filer efter størrelse og finde mønstertilpasning og tælle jerome Sukumar Shell Programmering og Scripting 2 12-01-2006 04:20 AM
Erstat 10. kolonne med en ny kolonne --- Terriblly travlt ahmedwaseem2000 Shell Programmering og Scripting 2 09-06-2005 01:10 AM
Find en kolonne i en flatfile peter.herlihy UNIX for dummyer Spørgsmål & svar 3 01-07-2002 08:08 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 11-21-2007
Donkey25 Donkey25 is offline
Registreret Bruger
  
 

Join Date: Nov 2007
Stillinger: 36
Finde den mest fælles ind i en kolonne

Hej,

Jeg har en fil med 3 kolonner i det, der er kommasepareret, og det har omkring 5.000 linier. Hvad jeg vil gøre, er at finde de mest almindelige værdi i kolonne 3 bruger awk eller et shell script eller hvad det virker! Jeg er fuldstændig i stå på, hvordan du gør dette.

f.eks

værdi1, værdi2, Bob
værdi1, værdi2, Bob
værdi1, værdi2, Bob
værdi1, værdi2, dave
værdi1, værdi2, James

Klart i ovenstående eksempel de mest populære værdi i kolonne3 er "Bob", men hvordan vil jeg skrive et script til at arbejde her?

Mange tak
  #2 (permalink)  
Old 11-21-2007
vgersh99's Avatar
vgersh99 vgersh99 is online now Forum Staff  
Moderator
  
 

Join Date: Feb 2005
Beliggenhed: Boston, MA
Indlæg: 5.121
nawk-f don.awk myFile

don.awk:
Code:
BEGIN {
  FS=","
}
{a[$3]++; if (a[$3] > comV) { comN=$3; comV=a[$3]} }
END {
    printf("Most Common Name: [%s] = [%d]\n", comN, comV)
}

Sidst redigeret af vgersh99; 11-21-2007 på 12:08 PM..
  #3 (permalink)  
Old 11-21-2007
summer_cherry summer_cherry is offline Forum Advisor  
Registreret Bruger
  
 

Join Date: Jun 2007
Location: Beijing Kina
Indlæg: 1.085
awk

Hej,
Dette bør man også være ok for dig. Faktisk er dette tilfælde involveret persormance spørgsmål, da din fil er thousound og hunderds linjer. Så svært logik vil få andet resultat.

For at være ærlig, har jeg kun vide, hvordan du får det resultat, men jeg har ingen idé om at give en højtydende kode. Så Du må hellere spørge nogle eksperter om hjælp.

Her kommer min kode:

Code:
awk 'BEGIN{
FS=","
n=0
}
{
sum[$3]++
if (sum[$3]>n)
{
	n=sum[$3]
	m=$3
}
}
END{
print m
}' filename
  #4 (permalink)  
Old 11-21-2007
drl's Avatar
DRL drl is offline Forum Advisor  
Registreret Bruger
  
 

Join Date: Apr 2007
Beliggenhed: Saint Paul, MN USA / BSD, CentOS, Debian, OS X, Solaris
Posts: 707
Hej.

Så du er villig til at acceptere en (mere eller mindre) tilfældigt resultat af nogen af de vindere, hvis der er stemmelighed mellem to eller flere navne? ... cheers, DRL
  #5 (permalink)  
Old 11-22-2007
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
narkoman
  
 

Join Date: Jan 2007
Beliggenhed: Варна, България / Milano, Italia
Stillinger: 2859
Det vil være tilstrækkeligt til at slå comN / m i array.
  #6 (permalink)  
Old 11-22-2007
Donkey25 Donkey25 is offline
Registreret Bruger
  
 

Join Date: Nov 2007
Stillinger: 36
Tak fyrene,

Jeg fik begge af ovenstående at arbejde, men min CPU-forbrug ramt 100% lol! Alle tanker om enten at gøre denne mere effektiv eller begrænse mængden af CPU, at dette awk script kan hog?

Tak igen
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 01:56 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