The UNIX and Linux Forums  

Go Back   UNIX och Linux Forum > Upp Forum > Shell-programmering och Skript
.
google unix.com



Shell-programmering och Skript Post frågor om ksh, CSH, SH, bash, PERL, PHP, sed, awk och andra skalskript och skal skriptspråk här.

Mer UNIX och Linux Forum Ämnen Du kan hitta Helpful
Tråd Thread Starter Forum Svar Senaste Inlägg
awk - Räknar antal liknande dhanamurthy Shell-programmering och Skript 8 05-16-2008 07:00
Räkna antalet förekomster kingofprussia UNIX for Dummies Frågor & Svar 1 04-01-2008 08:11
Jag behöver hjälp med att räkna de områden och området separatorer använder Nawk scrappycc Shell-programmering och Skript 3 02-06-2008 11:47
Räkna antalet filer i en katalog iamalex UNIX for Dummies Frågor & Svar 2 09-05-2005 11:13
räkna antalet linjer nayeemmz Linux 6 01-19-2005 12:37

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ök i denna tråd Rate Thread Visningslägen
  #1 (permalänk)  
Old 10-13-2008
Pablo_beezo Pablo_beezo is offline
Registered User
  
 

Join Date: april 2008
Inlägg: 85
Hjälp med att räkna antalet byte i ett område

Hej,

Jag har en fil som har 300 poster med en belastning av områden. två av dem är:

field_1 har mellan 8-9 bytes dvs 012345678, 0123456789
field_2 har 10 bytes dvs 01234567890

Jag vill kunna upprepa ut summan av alla dessa områden, dvs

200 (har 8-9 bytes)
100 (har 10 bytes)

inte säker på hur man gör detta har jag försökt wc-l:

RR \u003d "wc-l kund katalog / fil in.dat"

filen i. dat har ett mellanslag i filnamnet? inte säker på om det gör någon skillnad?

Jag kan inte få detta att fungera?
någon hjälp skulle appreceiated.
  #2 (permalänk)  
Old 10-13-2008
jim McNamara jim mcnamara is offline Forum Staff  
...@...
  
 

Join Date: februari 2004
Ort: NM
Inlägg: 5.808

Kod:
awk '{ arr[length($1)]++; arr[length($2)]++; }
       END {print "8 - 9 bytes", arr[8]+arr[9], " 10 bytes ", arr[10] } ' file

  #3 (permalänk)  
Old 10-14-2008
Pablo_beezo Pablo_beezo is offline
Registered User
  
 

Join Date: april 2008
Inlägg: 85
Question

Använd inte awk alls så osäker på hur man skriver detta?

Jag behöver två variabler som kommer att producera 8 -9 byte totalt och 10 byte totala dvs

8-9 \u003d awk '(arr [längd ($ 1)] + +)
END (print "8 - 9 bytes", arr [8] + arr [9]) "sökvägen för filen?
10 \u003d awk '(arr [längd ($ 2 )]++;)
END (print "10 bytes", arr [10]) "sökvägen för filen?


Är detta vad du skulle använda lösningen av Jim???
  #4 (permalänk)  
Old 10-14-2008
tayyabq8's Avatar
tayyabq8 tayyabq8 is offline Forum Advisor  
Moderator
  
 

Join Date: Nov 2004
Plats: Bahrain
Inlägg: 579
Det använder associativa kedjor, att förstå hur associativa kedjor arbeta i awk, se det här inlägget Det går inte att förstå associativa karaktär awk Arrays

Om du kör detta awk-skript, måste du använda det på samma sätt som han kodade, dess enligt dina krav, om du inte vet hur man kör det på kommandoraden och sedan lägga den på något shell-script och kör det fil. Ungefär så här:
Kod:
#! /bin/ksh
awk '{ arr[length($1)]++; arr[length($2)]++; }
       END {print "8 - 9 bytes", arr[8]+arr[9], " 10 bytes ", arr[10] } ' file

Spara filen shell-script som "test" så gör du följande:
Kod:
chmod +x test
./test

Closed Thread

Komihåglista

Thread Tools Sök i denna tråd
Sök i denna tråd:

Avancerad sökning
Visningslägen Betygsätt denna tråd
Betygsätt denna tråd:

Utstationering Regler
Du får inte efter nya trådar
Du får inte efter svar
Du får inte skicka bilagor
Du får inte redigera dina inlägg

BB-kod är På
Smilies är På
[IMG] kod PÃ¥
HTML-koden är Av
Trackback är På
Pingbacks är På
Refbacks är På




Alla tider är GMT -4. Klockan är nu 09:01.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Översättningar Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX och Linux Forum Innehållet upphovsrättsskyddat © 1993-2009. All Rights Reserved.Ad förvaltning RedTyger

Content Relevant webbadresser från vBSEO 3.2.0