The UNIX and Linux Forums  
Olá e boas-vindas de Estados Unidos para o UNIX e Linux Forum! Obrigado por visitar e fazer parte da nossa comunidade global.

Go Back   O UNIX e Linux Forum > Top Fóruns > Programação Shell Script e
.
google unix.com



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.

Mais UNIX e Linux Fórum Tópicos Você pode achar Helpfull
Fio Thread Starter Fórum Respostas Última postagem
a forma de ordenação por data pontos dentro de um arquivo nabmufti Programação Shell Script e 1 02-13-2008 05:33
como extrair números de ficheiro no script BASH seguido pelo prefixo! ,! e! nabmufti Programação Shell Script e 6 02-09-2008 08:32
filtrar a string de um arquivo? varungupta Programação Shell Script e 11 09-17-2007 11:11
Arquivo filtro Covarde Programação Shell Script e 3 09-06-2007 02:50
filtrarem determinados coluna a partir de um arquivo CamTu Programação Shell Script e 4 04-04-2005 07:24

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
Linkback Thread Tools Pesquisar este Thread Rate Thread Display Modes
  #1 (permalink)  
Old 06-07-2006
cnlhap cnlhap is offline
Usuário
  
 

Join Date: Jun 2006
Posts: 1
Cool como filtrar alguns parágrafos em um arquivo

Oi,

Estou tentando filtrar os pontos que contém "CONNECT", "alterar sistema interruptor logfile '. Isso significa dizer o ficheiro de entrada é:

-------------------------------------------------- -----
Thu Jun 7 00:32:31 2006
ACTION: 'CONNECT'
CLIENT USER: prdadm
CLIENTE TERMINAL:

Thu Jun 7 00:32:31 2006
AÇÃO: «alterar sistema switch logfile '
CLIENT USER: prdadm
CLIENTE TERMINAL:


Thu Jun 7 00:32:31 2006
ACTION: 'CONNECT'
CLIENT USER: prdadm
CLIENTE TERMINAL:

Thu Jun 7 00:32:42 2006
AÇÃO: 'ALTER DATABASE CLOSE normal'
CLIENT USER: prdadm
CLIENTE TERMINAL:
-------------------------------------------------- --------------

Gostaria que o arquivo de saída a ser:

-------------------------------------------------- --------------
Thu Jun 7 00:32:42 2006
AÇÃO: 'ALTER DATABASE CLOSE normal'
CLIENT USER: prdadm
CLIENTE TERMINAL:
-------------------------------------------------- --------------

Você tem algum script para executar esta, muito obrigado .
  #2 (permalink)  
Old 06-08-2006
Corona688 Corona688 is offline
Usuário
  
 

Join Date: Aug 2005
Localização: Saskatchewan
Posts: 1.942
Estou assumindo a linhas horizontais não são realmente no arquivo, e são apenas utilizados em vez de
Código:
code tags
Código etiquetas são melhores porque preservar espaçamento.

Aqui está um script:
Código:
#!/bin/sh

SHOULDPRINT=1

function do_flush
{
        if [[ ${SHOULDPRINT} -eq 1 && ! -z ${OUT} ]]
        then
                echo "${OUT}"
        fi
}

while read LINE
do
        if [[ -z ${LINE} ]]
        then
                do_flush
                OUT=""
                SHOULDPRINT=1
        elif    echo "${LINE}" | egrep -q "CONNECT|alter system switch logfile"
        then
                SHOULDPRINT=0
        else
                if [[ -z ${OUT} ]]
                then
                        OUT="
${LINE}"
                else
                        OUT="${OUT}
${LINE}"
                fi
        fi
done
do_flush
  #3 (permalink)  
Old 06-08-2006
tmarikle tmarikle is offline Forum Advisor  
Usuário
  
 

Join Date: Jan 2005
Lugares: 683
Awk Um exemplo da mesma coisa:
Código:
 nawk '
    $0 !~ /ACTION : / {
        last_line=$0
    }

    $0 ~ /^ACTION : / && $0 !~ /CONNECT|alter system/ {
        print last_line
        print $0
        getline ; print
        getline ; print
    }
' your_log_file
  #4 (permalink)  
Old 06-08-2006
vgersh99's Avatar
vgersh99 vgersh99 is offline Forum Staff  
Moderador
  
 

Join Date: Feb 2005
Localização: Boston, MA
Mensagens: 5.122
nawk-f cn.awk your_log_file

cn.awk:
Código:
BEGIN {
  RS=FS=""
  PATexclude="(CONNECT)|(alter system switch logfile)"
}
$0 !~ PATexclude
  #5 (permalink)  
Old 06-08-2006
tmarikle tmarikle is offline Forum Advisor  
Usuário
  
 

Join Date: Jan 2005
Lugares: 683
Cool

Citação:
Originally Posted by vgersh99
nawk-f cn.awk your_log_file

cn.awk:
Código:
BEGIN {
  RS=FS=""
  PATexclude="(CONNECT)|(alter system switch logfile)"
}
$0 !~ PATexclude
Agradável! Isso funciona, desde que os números têm espaço entre elas.
  #6 (permalink)  
Old 06-08-2006
vgersh99's Avatar
vgersh99 vgersh99 is offline Forum Staff  
Moderador
  
 

Join Date: Feb 2005
Localização: Boston, MA
Mensagens: 5.122
Citação:
Originally Posted by tmarikle
Agradável! Isso funciona, desde que os números têm espaço entre elas.
Sim, essa foi a premissa - «números são separados por linhas em branco"!
Closed Thread

Marcadores

Thread Tools Pesquisar este Thread
Pesquisar este Thread:

Pesquisa Avançada
Display Modes Esta taxa Thread
Esta taxa Thread:

Destacamento Regimento
Você não pode postar novas threads
Você não pode postar respostas
Você não pode postar anexos
Você não pode editar suas postagens

BB code é Ligado
Smilies são Ligado
[IMG] código é Ligado
Código HTML é Desligado
Trackbacks são Ligado
Pingbacks são Ligado
Refbacks são Ligado




Todos os horários são GMT -4. A hora é agora 04:22.


Powered by: vBulletinCopyright © 2000 - 2006, Jelsoft Enterprises Limited. Língua Traduções Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
O UNIX e Linux Fóruns Content Copyright © 1993-2009. Todos os Direitos Reserved.Ad Gestão por RedTyger

Content Relevant URLs por vBSEO 3.2.0