![]() |
|
|
google unix.com
|
|||||||
| Forums | Registrer | Forum Rules | Lenker | Album | FAQ | Medlemsliste | Kalender | Søke | Dagens innlegg | Marker forumene som lest |
| Shell programmering og Skripting Post spørsmål om ksh, csh, SH, Bash, Perl, PHP, SED, awk og ANDRE shell scripts og Shell skriptespråk her. |
Mer UNIX og Linux Forum Emner Du kan finne nyttig
|
||||
| Tråd | Tråd startet | Forum | Svar | Siste innlegg |
| Er det en Sed løsning på dette? | racbern | Shell programmering og Skripting | 1 | 03-13-2008 11:31 |
| behov for skripting | kkc | Shell programmering og Skripting | 14 | 01-31-2008 09:17 |
| Sun og backup løsning | Jshwon | Sun Solaris | 1 | 10-23-2007 01:54 |
| Grep løsning | Amruta Pitkar | Shell programmering og Skripting | 3 | 05-03-2007 03:57 |
| Linux som en NAS-løsning? | kjbaumann | Linux | 1 | 08-30-2006 01:09 |
![]() |
|
|
LinkBack | Thread Tools | Søk i denne tråden | Rate Thread | Visningsmoduser |
|
|
|
||||
|
Er det en awk løsning på dette?
Jeg skriver en awk-skript som samler visse data fra enkelte felt. Jeg trengte en awk løsning på dette, fordi det vil senere bli en funksjon i manuset. Jeg har følgende data som jeg trenger produksjon på én linje, men posten seg over multilple og poster er ikke "sammen". Eksempel vil være tom under posten "Tom" nedenfor er på 4 forskjellige linjer, men jeg trenger bare data fra 2 av linjene, vil jeg også trenger samme info for pat, Tim og TAD, eller hvem andre har en plate som format. Code:
2008 fl01 LAC 2589 polk doal
xx 2008q1 mx
sect 25698541
Sales 08 Dept group
lead1 2008q1
tom
pat
tim
tad
lead1 07q4 07q3 07q2 07q1 06q4 06q3 jan
tom 0 96 0 3312 3624 0 312
pat 0 17 0 0 30 0 30
tim 357 03 04 25 3020 3120 20
tad 1734 0 0 0 5213 5213 0
lead1 feb mar apr may jun jul aug
tom 0 96 0 0 0 0 0
pat 0 17 0 0 0 0 0
tim 357 23 5 7 8 14 70
tad 1734 0 0 0 0 0 0
lead1 sept oct nov dec
tom 0 0 460 92
pat 0 0 240 0
tim 0 21 1800 0
tad 0 0 672 0
2008 fl01 LAC 2589 polk doal
yy 2008q1 mx
sect 2569852
Sales 08 Dept group
Jeg trengte følgende output: Code:
lead1 07q4 07q1 06q4 06q3 sept oct nov tim 357 25 3020 3120 0 21 1800 tad 1734 0 5213 5213 0 0 672 Er det en awk løsning på dette? takk på forhånd for dette, fordi jeg tror dette er en vanskelig en. |
|
||||
|
Sitat:
|
|
||||
|
Sitat:
|
|
|||||
|
Code:
awk 'NR == 1 { print "lead1 07q4 07q1 06q4 06q3 sept oct nov tot" }
$1 ~ "^("users")$" && NF > 1 {
x[$1]++
if (x[$1] == 1) {
p[$1] = sprintf ("%s\t%s\t%s\t%s\t%s", $1, $2, $5, $6, $7)
t[$1] = $2 + $5
}
if (x[$1] == 3) {
printf "%s\t%s\t%s\t%s\t%d\n", p[$1], $2, $3, $4, t[$1]
}
}' users="tim|tad" file
|
|
||||
|
Sitat:
|
![]() |
| Hugseliste |
| Tags |
| solaris |
| Thread Tools | Søk i denne tråden |
| Visningsmoduser | Ranger denne tråden |
|
|