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
du från listan med du i listan totalt Movomito Shell-programmering och Skript 3 05-04-2008 10:33
förteckning över omatchade kolumner mohan705 Shell-programmering och Skript 3 12-12-2007 10:37
Row att Kolumner vskr72 UNIX for Dummies Frågor & Svar 4 03-21-2007 09:53
hur man kan generera en slumpmässig lista från en viss lista mskcc Shell-programmering och Skript 3 05-30-2006 04:30
Jämföra ett distinkt värde i 1-listan med en lista manualvin Shell-programmering och Skript 6 06-22-2004 07:42

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 Omdöme: Thread Rating: 1 votes, 5.00 average. Visningslägen
  #1 (permalänk)  
Old 08-26-2007
baghera baghera is offline
Registered User
  
 

Join Date: Aug 2007
Inlägg: 23
Förteckning till kolumner och awk hjälp

Hej jag är ny på detta forum och jag är en nybörjare när det gäller tanken programmering och awk programmering. Men jag har följande problem:

Jag har en lista så här:

1
2
3
4
5
6
7
8

Antingen från en fil eller utdata från ett kommando. Vad jag vill göra är att låta dessa värden i x kolumner med värden i varje kolumn så här:

1 2 3 4
5 6 7 8

Där x anger hur många kolumner jag skulle vilja. Sedan skulle jag vilja lägga till alla värden från kolumn 1 och dividera det med antalet rader (i detta fall 2).

glömde en sak: det här är ett Bourne shell script. Går det att ha x som en variabel input när man kör scriptet?

Eller är det möjligt att, i stället för att göra kolumner, lägga till varje x element i listan och sedan ta ett genomsnitt?

Senast redigerad av baghera; 08-26-2007 vid 02:09..
  #2 (permalänk)  
Old 08-27-2007
ranj @ chn ranj@chn is offline Forum Advisor  
Att spela med Ubuntu Now!
  
 

Join Date: oktober 2005
Plats: Chennai
Inlägg: 365
Lägg varje "x" element

Kod:
awk -v var=4 -f sample.awk inputfile
där sample.awk är
Kod:
(NR % var ) == 0 { sum+=$0; cnt++}
END {print sum, cnt }
Detta gör varje 4'th inslag är listan.

Om du vill att räknas från och med den första kolumnen i listan, ändra sample.awk till
Kod:
BEGIN { row_cnt=1 }
(NR % row_cnt ) == 0 { sum+=$0; cnt++; row_cnt+=var }
END {print sum, cnt }
  #3 (permalänk)  
Old 08-27-2007
ahmedwaseem2000 ahmedwaseem2000 is offline
Registered User
  
 

Join Date: Aug 2005
Ort: Bangalore
Inlägg: 219
Prova detta:

Kod:
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 (permalänk)  
Old 08-27-2007
dennis.jacob dennis.jacob is offline Forum Advisor  
dj - den studerande
  
 

Join Date: februari 2007
Ort: Singapore / Bangalore / Cochin
Inlägg: 607
cat fil | xargs-n <number av poster i en row>

Kod:
"/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
Om det är en fil med ett nummer i en linje,
gå för den här

Kod:
cat filename | tr '\n' ' ' | xargs -n 3
  #5 (permalänk)  
Old 08-27-2007
baghera baghera is offline
Registered User
  
 

Join Date: Aug 2007
Inlägg: 23
Jag uppskattar verkligen hjälp.

Jag gillar xargs sak. Är det då möjligt att lägga till varje element i en kolumn och dividera det med antalet element i tabellen.

Jag har använt detta kommando:

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

Men $ 1 / 2 där 2 bör en variabel (antalet element i kolumnen).

Även ranj @ chn jag inte få ditt manus att arbeta, jag måste göra något fel. Jag kopierade det du skrev och försökte köra det med:

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

Men jag får bara fel.

Och jag också försökt att köra ahmedwaseem2000 program men jag fick inte det att fungera heller. Jag verkligen ledsen men jag är en riktig "noob" på det här. Men hjälp ni ger mig ovärderliga.
  #6 (permalänk)  
Old 08-27-2007
ranj @ chn ranj@chn is offline Forum Advisor  
Att spela med Ubuntu Now!
  
 

Join Date: oktober 2005
Plats: Chennai
Inlägg: 365
efter felen

Har efter det fel och Unix box att du är ansluten till - o / p för
Kod:
uname -a
Det kan hjälpa att identifiera problemet. Du måste använda "nawk"Istället för awk på Solaris och"gawk"Om Linux.
  #7 (permalänk)  
Old 08-27-2007
ahmedwaseem2000 ahmedwaseem2000 is offline
Registered User
  
 

Join Date: Aug 2005
Ort: Bangalore
Inlägg: 219
Citat:
Ursprungligen postat av baghera View Post
Och jag också försökt att köra ahmedwaseem2000 program men jag fick inte det att fungera heller. Jag verkligen ledsen men jag är en riktig "noob" på det här. Men hjälp ni ger mig ovärderliga.
vad är det för fel du får? det fungerar perfekt bra för mig. se nedan


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

Behöver du tilldela värdet "INPUT" VARIABEL innan du kör koden annars kommer det att ge dig "division med noll i modul" vilja köra INPUT \u003d 4 innan du kör koden.
Closed Thread

Komihåglista

Taggar
linux

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
Smilies är
[IMG] kod
HTML-koden är Av
Trackback är
Pingbacks är
Refbacks är




Alla tider är GMT -4. Klockan är nu 04:24.


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