The UNIX and Linux Forums  


Go Back   A UNIX és Linux Forums > Top Fórumok > Shell programozás és Scripting
.
google unix.com



Shell programozás és Scripting Post kérdések KSH, CSH, SH, Bash, Perl, PHP, SED, AWK ÉS EGYÉB shell szkriptek és shell script nyelvek itt.

Több, UNIX és Linux fórum témák Ön által talált Hasznos
Szál Thread Starter Fórum Válaszok Utolsó hozzászólás
Van a Sed megoldást erre? racbern Shell programozás és Scripting 1 03-13-2008 11:31 AM
szükség megoldás scripting kkc Shell programozás és Scripting 14 01-31-2008 09:17 PM
A Sun és a backup megoldás Jshwon SUN Solaris 1 10-23-2007 01:54 PM
Grep megoldás Amruta Pitkar Shell programozás és Scripting 3 05-03-2007 03:57 AM
Linux, mint a NAS megoldás? kjbaumann Linux 1 08-30-2006 01:09 PM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Téma eszközök Keresés a téma Rate Thread Megjelenítési módok
  #1 (permalink)  
Old 03-06-2008
timj123 timj123 is offline
Regisztrált felhasználó
  
 

Join Date: Jan 2008
Hozzászólások: 80
Van egy awk megoldás ez?

Írok egy awk szkriptet, hogy bizonyos adatokat gyűjt az egyes területeken. Kellett egy awk megoldás ez, mert később vált funkcióval a forgatókönyvet.

Én a következő adatokat, hogy szükség van output, egy sorban, de a rekord ível át multilple sorokat, és a nyilvántartások nem "együtt". Példa erre az alábbi tom, nyilvántartja "Tom" alatt van a 4 különböző tételek, de csak a szükséges adatok 2 a sorokat, én is kell az ugyanazon információk pat, Tim és tad, vagy akárki más, mint egy rekord az alábbi formátumot.


Kód:
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

Kellett a következő kimenetet adja:


Kód:
lead1   07q4    07q1    06q4    06q3    sept    oct     nov
tim	357	25	3020	3120	0	21	1800 
tad	1734	0	5213	5213	0	0	672

Van egy awk megoldás ez?

köszönöm előre is ezt, mert úgy gondolom, ez olyan nehéz.
  #2 (permalink)  
Old 03-11-2008
timj123 timj123 is offline
Regisztrált felhasználó
  
 

Join Date: Jan 2008
Hozzászólások: 80
Idézet:
Originally Posted by timj123 View Post
Írok egy awk szkriptet, hogy bizonyos adatokat gyűjt az egyes területeken. Kellett egy awk megoldás ez, mert később vált funkcióval a forgatókönyvet.

Én a következő adatokat, hogy szükség van output, egy sorban, de a rekord ível át multilple sorokat, és a nyilvántartások nem "együtt". Példa erre az alábbi tom, nyilvántartja "Tom" alatt van a 4 különböző tételek, de csak a szükséges adatok 2 a sorokat, én is kell az ugyanazon információk pat, Tim és tad, vagy akárki más, mint egy rekord az alábbi formátumot.


Kód:
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

Kellett a következő kimenetet adja:


Kód:
lead1   07q4    07q1    06q4    06q3    sept    oct     nov
tim	357	25	3020	3120	0	21	1800 
tad	1734	0	5213	5213	0	0	672

Van egy awk megoldás ez?

köszönöm előre is ezt, mert úgy gondolom, ez olyan nehéz.
akármi segít ott ezt, kérem?
  #3 (permalink)  
Old 03-12-2008
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
Addict
  
 

Join Date: Jan 2007
Helyszín: Варна, България / Milano, Olaszország
Hozzászólások: 2.926

Kód:
awk 'NR == 1 { print "lead1   07q4    07q1    06q4    06q3    sept    oct     nov" }
$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)
if (x[$1] == 3) {
  printf "%s\t%s\t%s\t%s\n", p[$1], $2, $3, $4 
 }
}' users="tim|tad" file

Felveheti több felhasználó a mintát: Tim | tad | pat stb
Használja nawk / vagy usr/xpg4/bin/awk Solaris.
  #4 (permalink)  
Old 03-13-2008
timj123 timj123 is offline
Regisztrált felhasználó
  
 

Join Date: Jan 2008
Hozzászólások: 80
Idézet:
Originally Posted by radoulov View Post
Kód:
awk 'NR == 1 { print "lead1   07q4    07q1    06q4    06q3    sept    oct     nov" }
$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)
if (x[$1] == 3) {
  printf "%s\t%s\t%s\t%s\n", p[$1], $2, $3, $4 
 }
}' users="tim|tad" file

Felveheti több felhasználó a mintát: Tim | tad | pat stb
Használja nawk / vagy usr/xpg4/bin/awk Solaris.
Ez a szerkezet nagy, Nagyra értékelem a segítséget, de mi van, ha akartam Összefoglalva, oszlopok 07q4 és 07q1, majd tedd azt érték végén a printf nyilatkozat? Miután a kérdéseket, hogy részt. Tudna segíteni?
  #5 (permalink)  
Old 03-13-2008
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
Addict
  
 

Join Date: Jan 2007
Helyszín: Варна, България / Milano, Olaszország
Hozzászólások: 2.926

Kód:
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

  #6 (permalink)  
Old 03-13-2008
timj123 timj123 is offline
Regisztrált felhasználó
  
 

Join Date: Jan 2008
Hozzászólások: 80
OK, úgy érzem, most már hülye.
Köszönöm soo sok a mentés nekem körülbelül egy héttel érdemes a csalódottság.
Akkor rájöttem, kell vizsgálni az ehhez hasonló kérdésekre a különböző szöget.
  #7 (permalink)  
Old 03-13-2008
aspect_p aspect_p is offline
Regisztrált felhasználó
  
 

Join Date: Mar 2008
Hozzászólások: 13
Idézet:
Originally Posted by radoulov View Post
Kód:
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
Tud egy kicsit tovább megy le az awk módszerek a forgatókönyvet, im sajnálom, hogy a zavarásért, de valami ilyesmi lehet egy nagy ász az én arzenáljának shell scripting.
Closed Thread

Könyvjelzõk

Címkék
Solaris

Téma eszközök Keresés a téma
Keresés a téma:

Részletes keresés
Megjelenítési módok Rate this thread
Rate this thread:

Posting szabályzat
Ön nem post new threads
Ön nem post válaszok
Ön nem post Csatolmányok
Ön nem szerkeszteni az üzeneteidet

BB kód van Be
Smilies vannak Be
[IMG] kód Be
HTML kód Ki
Trackbacks vannak Be
Pingbacks vannak Be
Refbacks vannak Be




Minden idő GMT -4. Az idő most 12:40 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Nyelvre lefordítva Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
A UNIX és Linux Fórum Tartalom Copyright © 1993-2009. Minden jog Reserved.Ad menedzsment RedTyger

Content Relevant URLs by vBSEO 3.2.0