![]() |
|
|
google unix.com
|
|||||||
| Forum | Registrera | Forum Regler | Länkar | Album | FAQ | Medlemslista | Kalender | Söka | Dagens inlägg | Markera forum som lästa |
| 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 |
![]() |
|
|
LinkBack | Thread Tools | Sök i denna tråd |
Omdöme:
|
Visningslägen |
|
|
|
||||
|
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.. |
|
||||
|
Lägg varje "x" element
Kod:
awk -v var=4 -f sample.awk inputfile Kod:
(NR % var ) == 0 { sum+=$0; cnt++}
END {print sum, cnt }
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 }
|
|
||||
|
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 gå för den här Kod:
cat filename | tr '\n' ' ' | xargs -n 3 |
|
||||
|
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. |
|
||||
|
efter felen
Har efter det fel och Unix box att du är ansluten till - o / p för
Kod:
uname -a |
|
||||
|
Citat:
Citat:
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. |