The UNIX and Linux Forums  

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
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

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 03-17-2009
BecTech BecTech is offline
Registered User
  
 

Date d'inscription: mars 2009
Messages: 2
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
  #2 (permalink)  
Old 03-17-2009
daptal daptal is offline
Registered User
  
 

Date d'inscription: mars 2009
Posts: 60
#! / 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
  #3 (permalink)  
Old 03-18-2009
pmm pmm is offline
Registered User
  
 

Join Date: Dec 2008
Posts: 50
À la suite de votre script awk - printf utilisation:

Code:
awk '/Diags begin/{getline;printf};{if ($2=="(123)") print ","$1,$2,$3,$4}'
  #4 (permalink)  
Old 03-30-2009
BecTech BecTech is offline
Registered User
  
 

Date d'inscription: mars 2009
Messages: 2
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.
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 09:31 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