![]() |
|
|
google unix.com
|
|||||||
| Fóruns | Registar | Fórum Regimento | Ligações | Álbuns | FAQ | Lista deputados | Calendário | Pesquisa | Today's Posts | Mark Forums Read |
| Programação Shell Script e Post perguntas sobre ksh, CSH, SH, BASH, Perl, PHP, SED, Awk e outros scripts shell e shell scripts línguas aqui. |
|
|
Linkback | Thread Tools | Pesquisar este Thread | Rate Thread | Display Modes |
|
||||
|
Ajuda com awk funcions
Eu tenho um problema com o meu script. Ele funciona na maior parte dos casos, mas não é muito
portáteis. Exemplo abaixo é exemplo de "input file" e de cortar e colar "script. O script funciona perfeitamente, se o sistema seguinte outputted porções são as seguintes: SISTEMA CFO é seguido por SISTEMA DAX SISTEMA DAX é seguido por SISTEMA TC SISTEMA TC é seguido por STETEM gundo Em algumas das diversas Unidades do Sistema outputted porções não estão na mesma ordem ou algumas das partes do sistema não são outputted a todos. A minha pergunta é como posso modificar awk funções de parar em um sistema de processamento e iniciar tratamento sobre o próximo sistema parcela, quando o próximo sistema porção não está listado na porção si, exemplo de função (DAX): Código:
while (( getline > 0 ) && ( $3 != "TC" )) {
Aqui está a amostra de arquivo de entrada: Código:
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 Código:
/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
|
| Marcadores |
| Thread Tools | Pesquisar este Thread |
| Display Modes | Esta taxa Thread |
|
|