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
du fra listen med DU af listen samlede Movomito Shell Programmering og Scripting 3 05-04-2008 09:33 PM
Listen over umatchede kolonner mohan705 Shell Programmering og Scripting 3 12-12-2007 10:37 AM
Row til Columns vskr72 UNIX for dummyer Spørgsmål & svar 4 03-21-2007 09:53 AM
hvordan man kan generere en vilkårlig liste fra en given liste mskcc Shell Programmering og Scripting 3 05-30-2006 03:30 AM
Sammenligning af et særskilt værdi i 1 liste med en anden liste manualvin Shell Programmering og Scripting 6 06-22-2004 06:42 AM

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 Karakter: Thread Rating: 1 votes, 5.00 average. Display Modes
  #1 (permalink)  
Old 08-26-2007
Baghera baghera is offline
Registreret Bruger
  
 

Join Date: Aug 2007
Stillinger: 23
Liste for at kolonner og awk hjælpe

Hej jeg er ny på dette forum, og jeg er en nybegynder når det kommer til shell programmering og awk programmering. Men jeg har følgende problem:

Jeg har en liste som denne:

1
2
3
4
5
6
7
8

Enten fra en fil eller output fra en kommando. Hvad jeg gerne vil gøre, er at lade disse værdier i x kolonner med værdier i hver kolonne som denne:

1 2 3 4
5 6 7 8

Hvor x angiver, hvor mange kolonner jeg vil gerne. Derefter vil jeg gerne tilføje alle værdier fra kolonne 1 og dividere det med antallet af rækker (i dette tilfælde 2).

glemte noget: det er en Bourne shell script. Er det muligt at have x som en variabel input, når du kører scriptet?

Eller er det muligt, i stedet for at gøre kolonnerne, til at tilføje hver x element på listen og derefter tage et gennemsnit?

Sidst redigeret af Baghera; 08-26-2007 på 01:09 PM..
  #2 (permalink)  
Old 08-27-2007
ranj @ chn ranj@chn is offline Forum Advisor  
Leger med Ubuntu Now!
  
 

Join Date: oktober 2005
Sted: Chennai
Posts: 365
tilføj alle »x« element

Code:
awk -v var=4 -f sample.awk inputfile
hvor sample.awk er
Code:
(NR % var ) == 0 { sum+=$0; cnt++}
END {print sum, cnt }
Dette tilføjer hvert 4'th element er listen.

Hvis du ønsker, at regne fra den første kolonne i listen, ændre sample.awk til
Code:
BEGIN { row_cnt=1 }
(NR % row_cnt ) == 0 { sum+=$0; cnt++; row_cnt+=var }
END {print sum, cnt }
  #3 (permalink)  
Old 08-27-2007
ahmedwaseem2000 ahmedwaseem2000 is offline
Registreret Bruger
  
 

Join Date: Aug 2005
Beliggenhed: Bangalore
Posts: 219
Prøv dette:

Code:
awk -v INPUT=$INPUT '
BEGIN { ORS=""}
{

print $0 " "
if (( NR % INPUT ) == 0) {
print "\n"
count++
}

if (( NR % INPUT ) == 1) 
sum += $0

}

END { 
 op = sum/count
print op }' Filename
  #4 (permalink)  
Old 08-27-2007
dennis.jacob dennis.jacob is offline Forum Advisor  
dj -------
  
 

Join Date: Feb 2007
Location: Danmark / Bangalore / Cochin
Posts: 589
cat fil | xargs-n <number af poster i en row>

Code:
"/home/tdreader" > cat t.txt
1 2 3 4 5 6 7 8 9 12 12 32 5 66 56 343 8 875 434 0
"/home/tdreader" > cat t.txt | xargs -n 3
1 2 3
4 5 6
7 8 9
12 12 32
5 66 56
343 8 875
434 0
Hvis det er en fil med en række i en linje,
gå til dette

Code:
cat filename | tr '\n' ' ' | xargs -n 3
  #5 (permalink)  
Old 08-27-2007
Baghera baghera is offline
Registreret Bruger
  
 

Join Date: Aug 2007
Stillinger: 23
Jeg virkelig sætter pris på hjælpen.

Jeg kan godt lide xargs ting. Er det så muligt at tilføje de enkelte elementer i en kolonne og dividere det med antallet af elementer i kolonnen.

Jeg har brugt denne kommando:

awk '(sum + \u003d $ 1 / 2) (sum1 + \u003d $ 2 / 2) END (print sum sum1)'

Men $ 1 / 2, hvor de 2 skal være en variabel (antallet af elementer i kolonnen).

Også ranj @ chn jeg ikke få dit script til at arbejde, jeg skal gøre noget forkert. Jeg har lige kopieret hvad du skrev og forsøgte at køre det med:

awk-v var \u003d 2-f reader2.awk testfile.txt

Men jeg kun få fejl.

Og jeg har også prøvet at køre ahmedwaseem2000's program, men jeg ikke få det til at arbejde enten. Jeg virkelig ked af, men jeg er en virkelig "noob" på dette. Men den hjælp du har givet mig er uvurderlig.
  #6 (permalink)  
Old 08-27-2007
ranj @ chn ranj@chn is offline Forum Advisor  
Leger med Ubuntu Now!
  
 

Join Date: oktober 2005
Sted: Chennai
Posts: 365
post fejlene

Må post fejlene og Unix box, at du er tilsluttet - o / p af
Code:
uname -a
At kunne hjælpe identificere problemet. Du skal bruge "nawk'I stedet for awk på Solaris og'gawk»Hvis dens Linux.
  #7 (permalink)  
Old 08-27-2007
ahmedwaseem2000 ahmedwaseem2000 is offline
Registreret Bruger
  
 

Join Date: Aug 2005
Beliggenhed: Bangalore
Posts: 219
Citat:
Oprindeligt Indsendt af Baghera View Post
Og jeg har også prøvet at køre ahmedwaseem2000's program, men jeg ikke få det til at arbejde enten. Jeg virkelig ked af, men jeg er en virkelig "noob" på dette. Men den hjælp du har givet mig er uvurderlig.
Hvad er den fejl du får? dets arbejdsmetoder helt fint for mig. se nedenfor


Citat:
1 2 3 4
5 6 7 8
3
3 er den (1 + 5) / 2 \u003d 3

DU BEHOV FOR AT ANSAETTE værdi på "INPUT" variabel, før du kører koden andet vil det give dig "division med nul i modul" gerne køre INPUT \u003d 4, før du kører koden.
Closed Thread

Bogmærker

Tags
linux

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:08 PM.


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