SED pour un formatage précis de fichier
Résolu
arkard7
Messages postés
5
Date d'inscription
Statut
Membre
Dernière intervention
-
jipicy Messages postés 40842 Date d'inscription Statut Modérateur Dernière intervention -
jipicy Messages postés 40842 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
Je cherche comment utiliser sed pour formater un fichier de la forme suivante :
[url : jdbc:mysql://XX.XX.XX.XX:3306/
active : 0
idle : 8
[url : jdbc:mysql://XX.XX.XX.XX:3306/
active : 0
idle : 8
[url : jdbc:mysql://XX.XX.XX.XX:3306/
active : 0
idle : 8
J'aimerais soit ajouter le texte de la 1ere ligne avant les lignes active et idle (pour pouvoir parser avec un grep après les connexions actives en fonction de lIP de la BDD correspondante et les connexions en Idle) ou enlever le retour chariot sur les 2 lignes suivantes à la ligne [url etc... puis faire de suite toutes les 3 lignes.
Le but est de pouvoir parser les lignes active et idle pour chaque IP de BDD du fichier.
Je me retourne la tête depuis un moment et ai regardé sur le net mais n'arrive pas à un résultat satisfaisant.
Merci d'avance !
Je cherche comment utiliser sed pour formater un fichier de la forme suivante :
[url : jdbc:mysql://XX.XX.XX.XX:3306/
active : 0
idle : 8
[url : jdbc:mysql://XX.XX.XX.XX:3306/
active : 0
idle : 8
[url : jdbc:mysql://XX.XX.XX.XX:3306/
active : 0
idle : 8
J'aimerais soit ajouter le texte de la 1ere ligne avant les lignes active et idle (pour pouvoir parser avec un grep après les connexions actives en fonction de lIP de la BDD correspondante et les connexions en Idle) ou enlever le retour chariot sur les 2 lignes suivantes à la ligne [url etc... puis faire de suite toutes les 3 lignes.
Le but est de pouvoir parser les lignes active et idle pour chaque IP de BDD du fichier.
Je me retourne la tête depuis un moment et ai regardé sur le net mais n'arrive pas à un résultat satisfaisant.
Merci d'avance !
A voir également:
- SED pour un formatage précis de fichier
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier rar - Guide
- Fichier .dat - Guide
4 réponses
hello
$ awk '/url/ {x=$0};/active/ {xx=$0};/idle/{print x,xx,"/",$0}' a2 [url : jdbc:mysql://XX.XX.XX.XX:3306/ active : 0 / idle : 8 [url : jdbc:mysql://XX.XX.XX.XX:3306/ active : 0 / idle : 8 [url : jdbc:mysql://XX.XX.XX.XX:3306/ active : 0 / idle : 8 $
[url : jdbc:mysql://XX.XX.XX.XX:3306/
active : 0
idle : 8
[url : jdbc:mysql://XX.XX.XX.XX:3306/
active : 0
idle : 8
[url : jdbc:mysql://XX.XX.XX.XX:3306/
active : 0
idle : 8
qui donnerait ceci sachant que le XX correspond à la ligne précédente pour le "active" et à la deuxième ligne précédente pour l'"idle".
[url : jdbc:mysql://XX.XX.XX.XX:3306/ active : 0
[url : jdbc:mysql://XX.XX.XX.XX:3306/ idle : 8
[url : jdbc:mysql://XX.XX.XX.XX:3306/ active : 0
[url : jdbc:mysql://XX.XX.XX.XX:3306/ idle : 8
[url : jdbc:mysql://XX.XX.XX.XX:3306/ active : 0
[url : jdbc:mysql://XX.XX.XX.XX:3306/ idle : 8
Ou alors
[url : jdbc:mysql://XX.XX.XX.XX:3306/ active : 0 / idle : 8
[url : jdbc:mysql://XX.XX.XX.XX:3306/ active : 0 / idle : 8
[url : jdbc:mysql://XX.XX.XX.XX:3306/ active : 0 / idle : 8
J'espère etre à peu près clair.
active : 0
idle : 8
[url : jdbc:mysql://XX.XX.XX.XX:3306/
active : 0
idle : 8
[url : jdbc:mysql://XX.XX.XX.XX:3306/
active : 0
idle : 8
qui donnerait ceci sachant que le XX correspond à la ligne précédente pour le "active" et à la deuxième ligne précédente pour l'"idle".
[url : jdbc:mysql://XX.XX.XX.XX:3306/ active : 0
[url : jdbc:mysql://XX.XX.XX.XX:3306/ idle : 8
[url : jdbc:mysql://XX.XX.XX.XX:3306/ active : 0
[url : jdbc:mysql://XX.XX.XX.XX:3306/ idle : 8
[url : jdbc:mysql://XX.XX.XX.XX:3306/ active : 0
[url : jdbc:mysql://XX.XX.XX.XX:3306/ idle : 8
Ou alors
[url : jdbc:mysql://XX.XX.XX.XX:3306/ active : 0 / idle : 8
[url : jdbc:mysql://XX.XX.XX.XX:3306/ active : 0 / idle : 8
[url : jdbc:mysql://XX.XX.XX.XX:3306/ active : 0 / idle : 8
J'espère etre à peu près clair.
Magique !!! Ca marche ! Je l'aurais pas trouvé celle-la !
Serait-ce trop demander d'avoir l'autre cas de figure, si c'est possible ? En ajoutant l'url correspondante à l'active et à l'idle ?
Merci encore.
Serait-ce trop demander d'avoir l'autre cas de figure, si c'est possible ? En ajoutant l'url correspondante à l'active et à l'idle ?
Merci encore.
$ awk '/url/ {x=$0};/active/ {print x,$0};/idle/{print x,$0}' fichier [url : jdbc:mysql://XX.XX.XX.XX:3306/ active : 0 [url : jdbc:mysql://XX.XX.XX.XX:3306/ idle : 8 [url : jdbc:mysql://XX.XX.XX.XX:3306/ active : 0 [url : jdbc:mysql://XX.XX.XX.XX:3306/ idle : 8 [url : jdbc:mysql://XX.XX.XX.XX:3306/ active : 0 [url : jdbc:mysql://XX.XX.XX.XX:3306/ idle : 8 $