![]() |
|
|
google unix.com
|
|||||||
| Forums | S'inscrire | Forum Rules | Liens | Albums | FAQ | Liste des membres | Calendrier | Recherche | Aujourd'hui, les postes | Marquer les forums comme lus |
| 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 |
| Comment faire pour concaténer des lignes consécutives | shivi707 | UNIX Desktop for Dummies Questions & Réponses | 1 | 01-12-2009 09:08 AM |
| besoin de concaténer deux lignes si la ligne ne marche pas fin avec des citations | laxmi131 | UNIX for Advanced & Expert Users | 9 | 10-27-2008 07:22 AM |
| concaténez affichage 2 lignes et 1 avec comme condition de la ligne 2? | vithala | De programmation et de script Shell | 7 | 07-11-2008 02:01 AM |
| Besoin solution concaténez affichage 2 lignes et 1 avec comme condition de la ligne 2? | vithala | UNIX for Advanced & Expert Users | 1 | 07-10-2008 02:27 PM |
| Extraction Logfile Entries | harpdl | De programmation et de script Shell | 2 | 07-13-2006 02:40 PM |
![]() |
|
|
LinkBack | Thread Tools | Recherche sur ce Thread | Rate Thread | Modes d'affichage |
|
|
|
||||
|
Logfile - l'extraction de certaines lignes de concaténer en 1 ligne
J'ai un fichier journal à partir de Pistes de diagnostic automatique. Le fichier journal est annexée à chaque fois qu'une connexion automatique est exécuté.
J'aimerais il suffit de tirer certaines lignes de chaque run du fichier de log, et de les enchaîner en 1 ligne délimitée par des virgules (pour l'exportation vers Excel ou un tableau HTML). Chaque série de diagnostic est entre crochets par un début et de fin de commentaire, donc je suis capable de le groupe de cette façon mais je ne parviens pas à mettre tout en 1 en ligne. Typique de données: Diags commencer. Mar. Mars 17 18:07:34 EDT 2009 PASS: (123) Power Check . . [plus de données] Diags fin. Diags commencer. Mar. Mars 17 19:09:22 EDT 2009 FAIL: (123) Power Check . Description: Voltage clamp . . [plus de détails à défaut de données] . Diags fin. Je veux que le timestamp, résultat de test (pour le test 123) J'ai été en mesure d'utiliser awk pour se rapprocher mais je n'arrive pas très bien. awk '/ Diags begin / (getline; print), (if ($ 2 \u003d\u003d "(123)") print $ 1, $ 2, $ 3, $ 4)' Cela me donne: Lun Mar 16 11:37:07 EDT 2009 PASS: (123) Power Check Lun Mar 16 12:31:10 EDT 2009 PASS: (123) Power Check Mar Mar 17 01:30:54 EDT 2009 ** FAIL: (123) Power Check Mar Mar 17 03:08:16 EDT 2009 PASS: (123) Power Check Ce que je veux en venir est: Lun Mar 16 11:37:07 EDT 2009, CARTE: (123) Power Check Lun Mar 16 12:31:10 EDT 2009, CARTE: (123) Power Check Mar Mar 17 01:30:54 EDT 2009, ** FAIL: (123) Power Check Mar Mar 17 03:08:16 EDT 2009, CARTE: (123) Power Check Aussi, je suis à la recherche d'une méthode pour extraire uniquement les informations pour un certain laps de temps (par exemple la date du jour - 7 jours) mais je vais vous en préoccuper plus tard .. pas de bébé ... ![]() Le système est Unix (HP-UX), de sorte awk, perl, Ou sed sont des options. Merci pour toute aide .. Paul |
|
||||
|
#! / usr / bin /perl -w
use strict; open (FH, 'txt'); ma fb \u003d 0 $; my @ str; while (my $ line \u003d <FH>) ( chomp ($ line); if ($ line \u003d ~ m / Diags begin /) ( fb \u003d 1 $; ) if ($ FB & & ($ line \u003d ~ m / Diags begin / | | $ line \u003d ~ m / Diags end /)) ( push @ str, $ line; ) if ($ line \u003d ~ m / Diags end /) ( my $ x \u003d join "", @ str; print "$ x \ n"; @ str \u003d (); fb \u003d 0 $; ) ) Essayez cette À la vôtre Dernière édition par daptal; 03-17-2009 à 11:36 PM.. Motif: sortie |
|
||||
|
OK, merci pour les bonnes idées .. le piratage informatique et après quelques essais, j'ai finalement eu la sortie dans un format exploitable en utilisant awk.
J'ai les résultats en sortie vers un fichier ASCII dans un format csv .. mon fichier de sortie est appelé tstres.txt et des lignes typiques dans le regard fichier comme ceci: TSTR01, Mar 29 21:29:17 EDT 2009, CARTE:, Power Check TSTR01, Mar 30 00:54:55 EDT 2009, CARTE:, Power Check TSTR01, Mar 30 08:31:31 EDT 2009, ** FAIL:, Power Check TSTR02, Mar 07 14:41:08 EST 2009, le PASS:, Power Check TSTR02, Mar 07 21:46:33 EST 2009, le PASS:, Power Check Quel est le moyen le plus facile de prendre ce fichier de données et de la production à une table HTML? Mon plan est d'avoir le script exécuté dans une tâche cron et tout ce que je vous devez faire est de visualiser la page html. |
![]() |
| Bookmarks |
| Thread Tools | Recherche sur ce Thread |
| Modes d'affichage | Rate this thread |
|
|