comment récupérer 2 lignes [shell] - Shell/Batch - Programmation
Marsh Posté le 25-09-2003 à 10:19:12
Désolé oui, j'aurrait du précisé, c'est sous AIX 4.3.3
Et langage : Ksh
Marsh Posté le 25-09-2003 à 12:12:10
Apres essaies sur essaie, j'ai enfi trouvé, je donne comment j'ai fait pour les interessés
awk '{
memo=$0
if ( $1 == "COMPLETED" || $1 == "ABORTED" ) ### les ABORTED et COMPLETED sont les 1er champs sur les lignes###
{ print NR }
}' fichier_de_log > fichier_temporaire
for i in `cat fichier_temporaire`
do
num=`expr ${i} - 1`
a=`cat fichier_de_log | head -${num} | tail -1`
b=`cat fichier_de_log | head -${i} | tail -1`
echo "$b $a" >> fichier_de_résultats
done
rm fichier_temporaire
Voila
si jamais des questions, demandez ^^ et si quelqu'un a une autre solution, je suis preneur evidement.
Marsh Posté le 16-10-2003 à 09:01:01
man grep : il y a une option pour récupérer un nombre donné de lignes avant et après le match.
Mais là, je suis sous windows, alors j'ai pas la doc sous la main.
Marsh Posté le 17-10-2003 à 15:21:37
Avec grep -B 1 blabla
je recup la ligne avant celle ou il y a blabla, or il me faut la ligne avant blabla et la ligne avec blabla en sortie sur une meme ligne.
Marsh Posté le 18-10-2003 à 19:36:10
skwee a écrit : Avec grep -B 1 blabla |
Comme tu l'as écrit, awk paraît être une bonne solution à ton problème... que je traiterais comme ça:
Code :
|
mais la solution avec le grep me plaît bien aussi:
Code :
|
Marsh Posté le 20-10-2003 à 12:07:04
skwee a écrit : Avec grep -B 1 blabla |
avec grep -B 1 blabla tu recup la ligne avant celle ou il y a blabla, ET celle où il y a blabla !
Marsh Posté le 27-10-2003 à 15:25:58
Ha, je ne savais pas. j'ai pas tester en fait car j'ai continuer avec ce que j'avais trouvé.
Merci de la précision
Marsh Posté le 25-09-2003 à 10:11:02
Bonjour,
Je suis actuellement confronté au probleme suivant :
J'ai a récupérer dans un fichier log une ligne comprenant COMPLETED ou ABORTED (jusque la, ca va) et egalement la ligne du dessus !!
Le but etant d'obtenir si possible sur la meme ligne (fichier en sortie) la ligne avec COMPLETED ou ABORTED et la ligne directement au dessus.
Merci de m'aider