The UNIX and Linux Forums  


Go Back   UNIX og Linux Forums > Top Forums > Shell programmering og Skripting
.
google unix.com



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
Hvordan sortere paragrafer etter dato i en fil nabmufti Shell programmering og Skripting 1 02-13-2008 05:33
hvordan du pakker ut avsnitt fra fil i bash script etterfulgt av prefikset! ,! og! nabmufti Shell programmering og Skripting 6 02-09-2008 08:32
filter strengen fra en fil? varungupta Shell programmering og Skripting 11 09-17-2007 11:11
Fil filter Dastard Shell programmering og Skripting 3 09-06-2007 02:50
filtrere ut bestemt kolonne fra en fil CamTu Shell programmering og Skripting 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 Søk i denne tråden Rate Thread Visningsmoduser
  #1 (permalink)  
Old 06-07-2006
cnlhap cnlhap is offline
Registrert bruker
  
 

Bli Dato: juni 2006
Innlegg: 1
Cool hvordan å filtrere ut enkelte avsnittene i en fil

Hei,

Jeg prøver å filtrere ut disse paragrafene som inneholder "Koble til", "forandre systemet bytte logfile '. Det betyr si inndatafilen er:

-------------------------------------------------- -----
Ons Jun 7 00:32:31 2006
ACTION: "CONNECT"
CLIENT BRUKERHÅNDBOK: prdadm
CLIENT TERMINAL:

Ons Jun 7 00:32:31 2006
ACTION: 'endre systemet bytte logfile'
CLIENT BRUKERHÅNDBOK: prdadm
CLIENT TERMINAL:


Ons Jun 7 00:32:31 2006
ACTION: "CONNECT"
CLIENT BRUKERHÅNDBOK: prdadm
CLIENT TERMINAL:

Ons Jun 7 00:32:42 2006
ACTION: 'ALTER DATABASE CLOSE normalt "
CLIENT BRUKERHÅNDBOK: prdadm
CLIENT TERMINAL:
-------------------------------------------------- --------------

Jeg ønsker utdatafilen til:

-------------------------------------------------- --------------
Ons Jun 7 00:32:42 2006
ACTION: 'ALTER DATABASE CLOSE normalt "
CLIENT BRUKERHÅNDBOK: prdadm
CLIENT TERMINAL:
-------------------------------------------------- --------------

Har du noen script for å utføre dette, takk .
  #2 (permalink)  
Old 06-08-2006
Corona688 Corona688 is offline
Registrert bruker
  
 

Bli Dato: Aug 2005
Beliggenhet: Saskatchewan
Innlegg: 1969
Jeg antar at de horisontale linjene er faktisk ikke i filen, og er bare brukt i stedet for
Code:
code tags

Code kodene er bedre fordi de bevare mellomrom.

Her er et skript:

Code:
#!/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  
Registrert bruker
  
 

Bli Date: Jan 2005
Innlegg: 683
En awk eksempel på det samme:

Code:
 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 online now Forum Staff  
Moderator
  
 

Bli Date: Feb 2005
Sted: Boston, MA
Innlegg: 5131
nawk-f cn.awk your_log_file

cn.awk:

Code:
BEGIN {
  RS=FS=""
  PATexclude="(CONNECT)|(alter system switch logfile)"
}
$0 !~ PATexclude

  #5 (permalink)  
Old 06-08-2006
tmarikle tmarikle is offline Forum Advisor  
Registrert bruker
  
 

Bli Date: Jan 2005
Innlegg: 683
Cool

Sitat:
Originally Posted by vgersh99
nawk-f cn.awk your_log_file

cn.awk:

Code:
BEGIN {
  RS=FS=""
  PATexclude="(CONNECT)|(alter system switch logfile)"
}
$0 !~ PATexclude
Hyggelig! Dette fungerer så lenge paragrafene har mellomrom mellom dem.
  #6 (permalink)  
Old 06-08-2006
vgersh99's Avatar
vgersh99 vgersh99 is online now Forum Staff  
Moderator
  
 

Bli Date: Feb 2005
Sted: Boston, MA
Innlegg: 5131
Sitat:
Originally Posted by tmarikle
Hyggelig! Dette fungerer så lenge paragrafene har mellomrom mellom dem.
ja, det var antagelsen - paragrafene er atskilt med tomme linjer!
Closed Thread

Hugseliste

Thread Tools Søk i denne tråden
Søk i denne tråden:

Avansert søk
Visningsmoduser Ranger denne tråden
Ranger denne tråden:

Innleggsaktivitet Regler
Du kanskje ikke poste nye tråder
Du kanskje ikke poste svar
Du kanskje ikke post vedlegg
Du kanskje ikke redigere innleggene dine

BB-kode er
Smilefjes er
[IMG] koden
HTML-koden Av
Pingbacks er
Refbacks er




Alle klokkeslett er GMT -4. Nå er klokken 05:07.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Language Translations Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. All Rights Reserved.Ad Management by RedTyger

Content Relevant nettadresser av vBSEO 3.2.0