Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/02/2011, 15h46   #1
Invité régulier
 
Inscription : janvier 2011
Messages : 31
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 31
Points : 9
Points : 9
Par défaut Recherche une commande spécifique du grep (AIX).

Bonjour,
Tout d'abord je ne sais pas si je me trouve dans le bon forum par rapport à ma question qui concerne la commande 'grep' appelée dans un script 'ksh' qui commence ainsi :
Citation:
'#!/bin/ksh'
Je dois retourner un résultat identique à celui ci-dessous :

Citation:
hpx16:/data/13asr2/files/data/FICH/PURGE/SQL> grep 'Compteur ' DCO506AV.log
Compteur SAT_ALO AVANT purge = 2426331
Compteur SAT_FEU AVANT purge = 1653952
Compteur SAT_ALO AVANT purge = 2426331
Compteur SAT_STU AVANT purge = 2538999
hpx16:/data/13asr2/files/data/FICH/PURGE/SQL>
Ce résultat correspond à la comparaison de tables Oracle 2 par 2.
Ce que je souhaite donc obtenir, c'est :

Citation:
Compteur SAT_ALO AVANT purge = 2426331
Compteur SAT_FEU AVANT purge = 1653952

Compteur SAT_ALO AVANT purge = 2426331
Compteur SAT_STU AVANT purge = 2538999
Existe-t-il une commande dans le 'grep' permettant de spécifier des passages à la ligne (ou insertion d'une nouvelle ligne vierge) toutes les 2 lignes ?
Avec du sed par exemple...

Mon script est le suivant :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
 
#----- Analyse du fichier de log genere par SQLPLUS
 
if [ ! -f ${COMPTEURSORTIE} ];
then
  echo "$((`/bin/date +'%H%M%S'`)) - Le fichier ${COMPTEURSORTIE} est introuvable dans le repertoire : ${REPSQLLOG}" >> ${COMPTEURERR}
else
  #----- Code retour de SQLPLUS
  CODERETOUR=$?
  #----- Recherche des erreurs dans le fichiers de log
  TESTERR=`grep -i 'ORA-' ${FICHIERSORTIE} | wc -l`
  #----- Recherche des tags 'Compteur ' dans le fichiers de log
  TESTCPT=`grep -i 'Compteur ' ${FICHIERSORTIE} | wc -l`
 
  if [ $TESTERR -gt 0 ];
  then
    grep 'ORA-' ${FICHIERSORTIE} >> ${COMPTEURERR}
    echo "$((`/bin/date +'%H%M%S'`)) - Code retour SQLPLUS ${CODERETOUR}" >> ${COMPTEURSORTIE}
    echo "$((`/bin/date +'%H%M%S'`)) - Erreur a l'affichage des compteurs" >> ${COMPTEURERR}
    export ErrOracle=OUI
  else
    if [ $TESTCPT -gt 0 ];
    then
      cat ${FICHIERSORTIE}|grep 'Compteur ' >> ${COMPTEURSORTIE}
      echo " " >> ${COMPTEURSORTIE}
      echo "$((`/bin/date +'%H%M%S'`)) - Code retour SQLPLUS ${CODERETOUR}" >> ${COMPTEURSORTIE}
      echo "$((`/bin/date +'%H%M%S'`)) - Succes a l'affichage des compteurs" >> ${COMPTEURSORTIE}
      export ErrOracle=NON
    else
      echo "$((`/bin/date +'%H%M%S'`)) - Code retour SQLPLUS ${CODERETOUR}" >> ${COMPTEURSORTIE}
      echo "$((`/bin/date +'%H%M%S'`)) - Il n'y a pas de compteur dans le fichier de log" >> ${COMPTEURSORTIE}
      export ErrOracle=NON
    fi
  fi
fi
echo " " >> ${COMPTEURSORTIE}
Merci d'avance.
Cdlt,
Olivier
Reivilo35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2011, 16h06   #2
Expert Confirmé
 
Inscription : janvier 2011
Messages : 970
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : janvier 2011
Messages : 970
Points : 2 871
Points : 2 871
Salut,

Avec "grep" je ne pense pas que cela soit possible, mais avec "sed" si...

Code :
grep 'Compteur' fichier | sed '2~2 G'
zipe31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2011, 16h46   #3
Expert Confirmé Sénior
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 2 070
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 2 070
Points : 4 146
Points : 4 146
Code :
awk '/^Compteur/{if ((FNR % 2)  == 0){print $0,"\n"} else {print $0}}'
fi du grep !
N_BaH est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 01/02/2011, 16h55   #4
Expert Confirmé
 
Inscription : janvier 2011
Messages : 970
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : janvier 2011
Messages : 970
Points : 2 871
Points : 2 871
A ce moment là :

Code :
sed '/Compteur/n;G' fichier
zipe31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2011, 17h18   #5
Invité régulier
 
Inscription : janvier 2011
Messages : 31
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 31
Points : 9
Points : 9
J'ai essayé et ça donne ça :

Citation:
hpx16:/data/13asr2/files/data/FICH/PURGE/SQL> grep 'Compteur ' DCO506AV.log | sed '2~2 G'
sed: 2~2 G is not a recognized function.
hpx16:/data/13asr2/files/data/FICH/PURGE/SQL>
Reivilo35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2011, 17h28   #6
Expert Confirmé
 
Inscription : janvier 2011
Messages : 970
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : janvier 2011
Messages : 970
Points : 2 871
Points : 2 871
Quel système ?
Quelle version de sed ?

Essaie la solution de N_BaH ou ma 2nd proposition...
zipe31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2011, 17h34   #7
Membre éclairé
 
Homme Lilian Herault
Architecte technique
Inscription : juin 2010
Messages : 215
Détails du profil
Informations personnelles :
Nom : Homme Lilian Herault
Âge : 31
Localisation : France

Informations professionnelles :
Activité : Architecte technique
Secteur : Industrie

Informations forums :
Inscription : juin 2010
Messages : 215
Points : 335
Points : 335
Bonjour,

Si la solution de zipe31 ne fonctionne pas c'est que tu ne dispose pas d'un GNU Sed.

Essais avec ça:

Lilian.
lilian_h est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2011, 17h34   #8
Invité régulier
 
Inscription : janvier 2011
Messages : 31
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 31
Points : 9
Points : 9
J'ai également essayé la commande :

Citation:
grep 'Compteur' DCO506AV.log | sed '/Compteur/n;G'
et ça me renvoie ce que je veux :

Citation:
hpx16:/data/13asr2/files/data/FICH/PURGE/SQL> grep 'Compteur' DCO506AV.log | sed '/Compteur/n;G'
Compteur SAT_ALO AVANT purge = 2426331
Compteur SAT_FEU AVANT purge = 1653952

Compteur SAT_ALO AVANT purge = 2426331
Compteur SAT_STU AVANT purge = 2538999

Compteur SAT_FEUSTU AVANT purge = 1653951
Compteur SAT_FEU AVANT purge = 1653952

Compteur SAT_FEU AVANT purge = 1653952
Compteur SIG_RECO05 AVANT purge = 1653952

Compteur SAT_STU AVANT purge = 2538999
Compteur SIG_RECO07 AVANT purge = 2539000

Compteur SAT_ATT AVANT purge = 1590520
Compteur SIG_RECO50 AVANT purge = 1590520

Compteur SAT_DEP AVANT purge = 858681
Compteur SIG_RECO06 AVANT purge = 858681

Compteur SAT_TOP AVANT purge = 5732
Compteur SIG_RECO115 AVANT purge = 5732

Compteur SAT_NUMNRS AVANT purge = 36129
Compteur SIG_RECO204 AVANT purge = 308830

Compteur SAT_SCL AVANT purge = 17847
Compteur SIG_RECO43 AVANT purge = 17847

hpx16:/data/13asr2/files/data/FICH/PURGE/SQL>
Merci les gars pour toutes les idées et conseils.

Bonne soirée.
Cdlt,
Olivier
Reivilo35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2011, 17h36   #9
Membre éclairé
 
Homme Lilian Herault
Architecte technique
Inscription : juin 2010
Messages : 215
Détails du profil
Informations personnelles :
Nom : Homme Lilian Herault
Âge : 31
Localisation : France

Informations professionnelles :
Activité : Architecte technique
Secteur : Industrie

Informations forums :
Inscription : juin 2010
Messages : 215
Points : 335
Points : 335
Pardon, il y a un 'n;' en trop... désolé

lilian_h est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2011, 18h16   #10
Invité régulier
 
Inscription : janvier 2011
Messages : 31
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 31
Points : 9
Points : 9
Ouh la la, pour les questions sur le système et la version de sed, alors là je n'y connais strictement rien.
C'est du charabia.
Je ne saurai répondre.
Cdlt,
Olivier
Reivilo35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2011, 18h30   #11
Expert Confirmé
 
Inscription : janvier 2011
Messages : 970
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : janvier 2011
Messages : 970
Points : 2 871
Points : 2 871
A partir du moment où la 2nd syntaxe marche, ça devient subsidiaire du coup
zipe31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2011, 18h35   #12
Invité régulier
 
Inscription : janvier 2011
Messages : 31
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 31
Points : 9
Points : 9
Oui c'est sûr.
Reivilo35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2011, 07h56   #13
Membre éclairé
 
Homme Lilian Herault
Architecte technique
Inscription : juin 2010
Messages : 215
Détails du profil
Informations personnelles :
Nom : Homme Lilian Herault
Âge : 31
Localisation : France

Informations professionnelles :
Activité : Architecte technique
Secteur : Industrie

Informations forums :
Inscription : juin 2010
Messages : 215
Points : 335
Points : 335
Bonjour,

Tu peux au moins nous dire sur quel système d'exploitation tu es ?

Lilian.
lilian_h est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2011, 09h59   #14
Invité régulier
 
Inscription : janvier 2011
Messages : 31
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 31
Points : 9
Points : 9
Je travaille sur Microsoft Windows XP Professionnel Version 2002 Service Pack 2, et pour accéder aux consoles Unix, je passe par Putty en SSH.
Voilà je ne sais pas si cela répond à vos questions.
Cdlt,
Olivier
Reivilo35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2011, 10h06   #15
Responsable Modération
 
Avatar de ok.Idriss
 
Homme Idriss Neumann
Consultant en SSII et étudiant au CNAM Paris (ingénieur SI)
Inscription : février 2009
Messages : 1 978
Détails du profil
Informations personnelles :
Nom : Homme Idriss Neumann
Âge : 21
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Consultant en SSII et étudiant au CNAM Paris (ingénieur SI)

Informations forums :
Inscription : février 2009
Messages : 1 978
Points : 5 995
Points : 5 995
Bonjour.

Citation:
Envoyé par Reivilo35 Voir le message
Je travaille sur Microsoft Windows XP Professionnel Version 2002 Service Pack 2, et pour accéder aux consoles Unix, je passe par Putty en SSH.
Voilà je ne sais pas si cela répond à vos questions.
Ce qui l'aurai intéressé ce sont les versions de tes OS sur lesquels tu te connecte en SSH. À priori ce sont des Unix (on s'en doutait un peu), donc ta version de sed est une version POSIX et non GNU. Il sera toutefois toujours intéressant que tu nous indique les versions de tes Unix pour plus de précisions et plus de facilité dans les futures recherches ...

AIX ? HP-UX ? Solaris ? OpenBSD ? etc

Cordialement,
Idriss
ok.Idriss est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 02/02/2011, 10h59   #16
Invité régulier
 
Inscription : janvier 2011
Messages : 31
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 31
Points : 9
Points : 9
Machine AIX.
Reivilo35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2011, 11h08   #17
Responsable Modération
 
Avatar de ok.Idriss
 
Homme Idriss Neumann
Consultant en SSII et étudiant au CNAM Paris (ingénieur SI)
Inscription : février 2009
Messages : 1 978
Détails du profil
Informations personnelles :
Nom : Homme Idriss Neumann
Âge : 21
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Consultant en SSII et étudiant au CNAM Paris (ingénieur SI)

Informations forums :
Inscription : février 2009
Messages : 1 978
Points : 5 995
Points : 5 995
Merci à toi
ok.Idriss est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h14.


 
 
 
 
Partenaires

Hébergement Web