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.

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 11-17-2008
timj123 timj123 is offline
Regisztrált felhasználó
  
 

Join Date: Jan 2008
Hozzászólások: 80
Segítség a awk funcions

Nekem van egy kérdés, én forgatókönyvet. Mûködik a legtöbb, de nem nagyon
hordozható. Példa alábbi minta "input file" és vágott be a "forgatókönyvet.

A script működik jól, ha a következő rendszer részeket outputted a következők:

SYSTEM CFO követi SYSTEM DAX
SYSTEM DAX követi RENDSZER TC
RENDSZER TC követi STETEM Ond

A különböző egységek egy részét a rendszer részeinek és nem ugyanabban a outputted
érdekében, illetve néhány, a rendszer részeket nem outputted egyáltalán.

A kérdésem az, hogy hogyan tudom módosítani awk funkciók stop feldolgozását az egyik rendszer
és meg kell kezdeni a következő feldolgozási rendszer része, amikor a következő rendszer része
nincs benne az a része is, például a funkciót (DAX):

Kód:
   while (( getline > 0 ) && ( $3 != "TC" )) {

A fenti sor a kódot, 3 $ TC a következő rendszer része, amely azt mondja, hogy hagyja abba a funkció feldolgozás.

Itt van minta input file:


Kód:
doal   cont   pegc   system1   call7   solh
RX SYSTEM CFO
DATE 322:47:34

DPORQ = 0        TTORQ = 0        DPINRQ= 0
MFINRQ= 0        CDIRR = 0        TCBSY = 0
TCINT = 0        TCANS = 0        TCRNG = 0
RPINRQ= 0        C6INRQ= 0        ISUPRQ= 11147
TUPRQ = 0        MFOURQ= 0        C6OURQ= 0
ISUPOR= 17417    BICCRQ= 0        BICCOR= 0
POVFL = 0

doal   cont   pegc   system1   call7   solh
RX SYSTEM DAX
DATE 322:47:34

proc   cpu    systm    load     sactv    orig    ovldpu   mmst
1      0        0        0        0        0        0        0
2      0        0        0        0        0        0        0
3      0        0        0        0        0        0        0
4      0        0        0        0        0        0        0
5      0        0        0        0        0        0        0
6      0        0        0        0        0        0        0
7      0        0        0        0        0        0        0
8      0        0        0        0        0        0        0
9      0        0        0        0        0        0        0
10     0        0        0        0        0        0        0
11     0        0        0        0        0        0        0

doal   cont   pegc   system1   call7   solh
RX SYSTEM TC
DATE 322:47:34

proc     pucco    load     chgro    chmert   chinc    chout    ceqpu
22       2        97       0        0        2707     6374     0
1        3        15011    0        0        2717     6651     0
2        3        12976    0        0        2139     6137     0
3        3        13898    0        0        2199     6583     0
4        3        15123    0        0        2478     7788     0
5        3        13823    0        0        2645     5789     0

Itt van minta script:

Kód:
/usr/xpg4/bin/awk '

$3 == "CFO"    { cFO() } 
$3 == "DAX"    { dAX() } 
$3 == "TC"     { tC()  } 


function dAX(     _xm)
{
   while (( getline > 0 ) && ( $3 != "TC" )) {

do a a lot of awk stuff here....
.
.
.
.
.
   }
}

function tC(     _msx)
{
   while (( getline > 0 ) && ( $3 != "OND" )) {

do a a lot of awk stuff here....
.
.
.
.
.
   }
}

function cFO(     _iu)
{
   while (( getline > 0 ) && ( $3 != "DAX" )) {

do a a lot of awk stuff here....
.
.
.
.
.
   }
} FILENAME

Köszönöm előre.
  #2 (permalink)  
Old 11-18-2008
timj123 timj123 is offline
Regisztrált felhasználó
  
 

Join Date: Jan 2008
Hozzászólások: 80
Van úgy, hogy talán olvasni egész fájlt meghatározni rendszer következő szakasza? Én meg akarja elkerülni ezt, mert a kép tényleg nagy.
  #3 (permalink)  
Old 11-19-2008
Annihilannic Annihilannic is offline Forum Advisor  
  
 

Join Date: May 2008
Helyszín: Sydney, Ausztrália
Hozzászólások: 1009
Miért nem változik a feltétellel, ha az leáll, azaz, ha megüt a "doal" sort?


Kód:
    while (getline && $1 != "doal") {

Ha szükség van, hogy a feldolgozás a "doal" sor tartalmát ha csak ezt követően, míg a hurok.
  #4 (permalink)  
Old 11-19-2008
timj123 timj123 is offline
Regisztrált felhasználó
  
 

Join Date: Jan 2008
Hozzászólások: 80
Annihilannic,
Először is Köszönöm, hogy néztem meg ezt nekem.

De sajnos az adatok I posted csak egy részlet, amit én. Előfordul, hogy az adatok a következők:


Kód:
doal   cont   pegc   system1   call7   solh
RX SYSTEM CFO
DATE 322:47:34

DPORQ = 0        TTORQ = 0        DPINRQ= 0
MFINRQ= 0        CDIRR = 0        TCBSY = 0
TCINT = 0        TCANS = 0        TCRNG = 0
RPINRQ= 0        C6INRQ= 0        ISUPRQ= 11147
TUPRQ = 0        MFOURQ= 0        C6OURQ= 0
ISUPOR= 17417    BICCRQ= 0        BICCOR= 0
POVFL = 0

doal   cont   pegc   system1   call7   solh
RX SYSTEM CFO
DATE 322:47:34

DPORQ = 0        TTORQ = 0        DPINRQ= 0
MFINRQ= 0        CDIRR = 0        TCBSY = 0
TCINT = 0        TCANS = 0        TCRNG = 0
RPINRQ= 0        C6INRQ= 0        ISUPRQ= 11158
TUPRQ = 0        MFOURQ= 0        C6OURQ= 0
ISUPOR= 17459    BICCRQ= 0        BICCOR= 0
POVFL = 0

doal   cont   pegc   system1   call7   solh
RX SYSTEM DAX
DATE 322:47:34

proc   cpu    systm    load     sactv    orig    ovldpu   mmst
1      0        0        0        0        0        0        0
2      0        0        0        0        0        0        0
3      0        0        0        0        0        0        0
4      0        0        0        0        0        0        0
5      0        0        0        0        0        0        0
6      0        0        0        0        0        0        0
7      0        0        0        0        0        0        0
8      0        0        0        0        0        0        0
9      0        0        0        0        0        0        0
10     0        0        0        0        0        0        0
11     0        0        0        0        0        0        0

És azt kell mindkét folyamat egyik szakasza. De te adj egy ötletet arra vonatkozóan, hogyan lehet megoldani máshol, ha lehet. Van úgy, hogy teszteljék a vonal alatt, anélkül teszi, hogy a feldolgozás sor??? Megpróbálom elmagyarázni e teszteletlen kód:


Kód:
while (( getline > 0 ) && ( $1 != "doal" ) && ( getline ; $3=! "CFO"))

Amit próbál mondani, van-e lehetőség a vizsgálat 3 $ alatt "doal" sort?
  #5 (permalink)  
Old 11-19-2008
Annihilannic Annihilannic is offline Forum Advisor  
  
 

Join Date: May 2008
Helyszín: Sydney, Ausztrália
Hozzászólások: 1009
Nehéz, hogy Önt, anélkül, hogy tudnánk, mit is csinál a kód, amíg ezek a belső hurkok, de az Ön álláspontját, és azt próbálja meg elkerülni azokat használó teljesen, de valami ilyesmi:


Kód:
awk '
        /^RX SYSTEM/ { section=$3 }
        section=="CFO" {
                print "processing CFO stuff: " $0
        }
        section=="DAX" {
                print "processing DAX stuff: " $0
        }
        section=="TC" {
                print "processing TC stuff: " $0
        }
' inputfile > outputfile

Lehetőség van arra, hogy "nézd csak" a következő sorokat a tároló minden sor, amit olvastam, hogy egy változó, és a tárolt adatok feldolgozására a változó, ha elolvassa a következő sort, az enyhe komplikáció, hogy meg kell kezelni az utolsó sor Az adatok a végén () záradékát szkriptjeid.
Closed Thread

Könyvjelzõk

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 05:38 AM.


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