2017-09-21 19 views
0

La mise en page de mon fichier journal se présente comme suit:Comment puis-je obtenir mon fichier .log dans une base de données ou le format approprié pour une base de données

08/30 06:30:40 0000:00:04 T992 **** 01865888888 860444   ST992         101 T1011    1865888888   Y1016969 A            
08/30 06:35:09 0000:00:03 T992 **** 01865888888    E          101 T1011    1865888888   G1013976 A            
08/30 06:36:50 0000:00:03 T992 **** 01865888888    E          101 T1011    1865888888   W1017933 A            
08/30 06:48:34 0000:00:16 516332 **** 516330     I 516330        101 

Comment afficher toutes les colonnes, je peux régulièrement si facilement importer ce données dans une base de données.

J'ai essayé pour ETD Windows pour supprimer plusieurs espaces et insérer une virgule à la place, mais ne fonctionne toujours pas aligner les colonnes dont j'ai besoin tout le 101 par exemple pour être en ligne et toutes les dates pour être en ligne, etc.

Toute personne Aidez-moi?

+0

Vous ne voulez pas 'sed', vous voulez' cut' –

Répondre

0

Ici, je vous l'ai commencé:

sed -r 's/(.{5}) (.{8}) (.{10}) (.{6})/"\1","\2","\3","\4"/' 

Cela va extraire les 4 premiers champs. Calculer le nombre de colonnes, mettre en (.{<number>}) Ajouter les espaces obtenir le résultat avec ,"\<field number>"

Voici mon test

echo "08/30 06:48:34 0000:00:16 516332 **** 516330     I 516330 " | sed -r 's/(.{5}) (.{8}) (.{10}) (.{6})/"\1","\2","\3","\4"/' 
+0

brillante réponse , et je crois que cela a résolu mon problème (toujours en train de travailler dessus pour le moment). J'ai été étonné de la rapidité avec laquelle ma question a également répondu. merci pour votre temps à regarder cela. J'ai essayé et essayé beaucoup de choses pour résoudre ce souhait, j'ai demandé de l'aide plus tôt. :-) – nomishuk

+0

Comment travaillez-vous à partir d'une rangée supérieure ayant un numéro de 11 chiffres puis un nombre de chiffres et la deuxième ligne ayant un numéro de 1 chiffre, puis un numéro de 11 chiffres. parce que la commande SED que j'utilise ci-dessus ne la reconnecte pas, elle n'a qu'un caractère ... 08/30,06: 17: 48,0000: 00: 36, T992, 0001 01865868888 8688888 ST992 101 T1011 1865868888 Y1014798 A 08/30,06: 17: 48,0000: 00: 36, T992, 1 01865868888 – nomishuk

+0

. Okaaay. Que penses-tu d'un rapide script perl ou php à la place :-) –