The UNIX and Linux Forums  
Bonjour et bienvenu par les États-Unis à la UNIX et Linux Forums! Merci de votre visite et vous joindre à notre communauté mondiale.

Go Back   Les systèmes UNIX et Linux Forums > Top Forums > De programmation et de script Shell
.
google unix.com



De programmation et de script Shell Posez vos questions à propos de KSH, CSH, SH, BASH, PERL, PHP, SED, awk et d'autres scripts shell et les langages de script shell ici.

Plus d'UNIX et Linux Forum Sujets Vous trouverez peut-être utile
Fil Thread Starter Forum Réponses Last Post
la façon de trier par date paragraphes dans un fichier nabmufti De programmation et de script Shell 1 02-13-2008 05:33 PM
la façon d'extraire des points à partir d'un fichier en script BASH suivie par le préfixe! ,! et! nabmufti De programmation et de script Shell 6 02-09-2008 08:32 PM
filtre de la chaîne à partir d'un fichier? varungupta De programmation et de script Shell 11 09-17-2007 10:11 PM
Dossier filtre Lâche De programmation et de script Shell 3 09-06-2007 01:50 PM
filtrer certains colonne d'un fichier CamTu De programmation et de script Shell 4 04-04-2005 06:24 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 Thread Tools Recherche sur ce Thread Rate Thread Modes d'affichage
  #1 (permalink)  
Old 06-07-2006
cnlhap cnlhap is offline
Registered User
  
 

Date d'inscription: juin 2006
Messages: 1
Cool comment filtrer certains points dans un fichier

Salut,

Je suis en train de filtrer ces paragraphes que contient "CONNECT", "modifier système switch logfile". Cela signifie-dire le fichier d'entrée est:

-------------------------------------------------- -----
Fri Jun 7 00:32:31 2006
ACTION: "CONNECT"
CLIENT UTILISATEUR: prdadm
CLIENT TERMINAL:

Fri Jun 7 00:32:31 2006
ACTION: "modifier système switch logfile"
CLIENT UTILISATEUR: prdadm
CLIENT TERMINAL:


Fri Jun 7 00:32:31 2006
ACTION: "CONNECT"
CLIENT UTILISATEUR: prdadm
CLIENT TERMINAL:

Fri Jun 7 00:32:42 2006
ACTION: 'ALTER DATABASE CLOSE NORMAL'
CLIENT UTILISATEUR: prdadm
CLIENT TERMINAL:
-------------------------------------------------- --------------

Je voudrais que le fichier de sortie doit être:

-------------------------------------------------- --------------
Fri Jun 7 00:32:42 2006
ACTION: 'ALTER DATABASE CLOSE NORMAL'
CLIENT UTILISATEUR: prdadm
CLIENT TERMINAL:
-------------------------------------------------- --------------

Avez-vous un script pour cela, je vous remercie beaucoup .
  #2 (permalink)  
Old 06-08-2006
Corona688 Corona688 is offline
Registered User
  
 

Join Date: Aug 2005
Lieu: Saskatchewan
Messages: 1933
Je suis en supposant que les lignes horizontales ne sont pas dans le fichier, et ne sont utilisées au lieu de
Code:
code tags
Code tags parce qu'ils sont mieux préserver l'espacement.

Voici un script:
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  
Registered User
  
 

Join Date: Jan 2005
Messages: 683
Awk Un exemple de la même chose:
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  
Modérateur
  
 

Join Date: Feb 2005
Lieu: Boston, MA
Posts: 5119
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  
Registered User
  
 

Join Date: Jan 2005
Messages: 683
Cool

Citation:
Posté par vgersh99
nawk-f cn.awk your_log_file

cn.awk:
Code:
BEGIN {
  RS=FS=""
  PATexclude="(CONNECT)|(alter system switch logfile)"
}
$0 !~ PATexclude
Beau! Cela fonctionne tant que les paragraphes des espaces entre eux.
  #6 (permalink)  
Old 06-08-2006
vgersh99's Avatar
vgersh99 vgersh99 is online now Forum Staff  
Modérateur
  
 

Join Date: Feb 2005
Lieu: Boston, MA
Posts: 5119
Citation:
Posté par tmarikle
Beau! Cela fonctionne tant que les paragraphes des espaces entre eux.
oui, c'est l'hypothèse - «paragraphes sont séparés par des lignes blanches!
Closed Thread

Bookmarks

Thread Tools Recherche sur ce Thread
Recherche sur ce Thread:

Recherche avancée
Modes d'affichage Rate this thread
Rate this thread:

Règles de messages
Tu mai pas de nouvelles discussions: nonoui
Tu mai pas envoyer des réponses:
Tu mai pas envoyer des pièces jointes
Tu mai pas modifier vos messages

BB code est Sur
Smilies sont Sur
[IMG] code est Sur
Le code HTML est Hors tension
Trackbacks sont Sur
Pingbacks sont Sur
Refbacks sont Sur




Toutes les heures sont au format GMT -4. Le temps est maintenant 04:07 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traductions Langue Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Les systèmes UNIX et Linux Forums Content Copyright © 1993-2009. Tous droits Reserved.Ad de gestion par RedTyger

Content Relevant URLs par vBSEO 3.2.0