Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
714 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  pour extraire des infos d'un fichier texte

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

pour extraire des infos d'un fichier texte

n°668666
harlock59
Posté le 09-03-2004 à 15:46:24  profilanswer
 

si quelqu'un pouvait m'aider à lire dans un fichier texte en script shell unix? et à exploiter des informations contenues dans ce fichier
merci d'avance.
c'est pour exploiter des fichiers de logs.


Message édité par harlock59 le 09-03-2004 à 15:47:38
mood
Publicité
Posté le 09-03-2004 à 15:46:24  profilanswer
 

n°668684
aigles
Posté le 09-03-2004 à 16:04:25  profilanswer
 

Il n'y a pas de solution miracle ...
Tu peux utiliser sed, grep, awk .....
Tout dépend de la structure de ton fichier, de ce que tu veux faire des infos récupérées ...
 
Donnes nous plus de précisions si tu veux des réponses plus précises.


Message édité par aigles le 09-03-2004 à 16:04:46

---------------
Jean Pierre.
n°669271
harlock59
Posté le 10-03-2004 à 09:21:18  profilanswer
 

par exemple, je voudrais extraire du texte et le recopier dans un autre fichier texte.

n°669335
harlock59
Posté le 10-03-2004 à 10:51:15  profilanswer
 

for i in wc -l
if cut -d " " -eq '' then
cat>>monfichier | cut -d " " 10 | cut -d "SRC="
cat>>monfichier '\n'
cat>>monfichier | cut -d " " 19 | cut -d "DPT="
else
cat>>monfichier | cut -d " " 9
cat>>monfichier | cut -d " " 18
 
voici le debut de mon code...
je posterais bientot le fichier de logs

n°670541
harlock59
Posté le 11-03-2004 à 09:48:26  profilanswer
 

Mar  8 01:16:40 Kheshmet kernel: IN=ppp0 OUT= MAC= SRC=81.67.61.241 DST=80.8.122.145 LEN=60 TOS=0x00 PREC=0x00 TTL=46 ID=50102 DF PROTO=TCP SPT=50803 DPT=1845 WINDOW=32768 RES=0x00 SYN URGP=0
Mar  8 01:16:43 Kheshmet kernel: IN=ppp0 OUT= MAC= SRC=81.67.61.241 DST=80.8.122.145 LEN=60 TOS=0x00 PREC=0x00 TTL=46 ID=50218 DF PROTO=TCP SPT=50803 DPT=1845 WINDOW=32768 RES=0x00 SYN URGP=0

n°670555
harlock59
Posté le 11-03-2004 à 10:00:04  profilanswer
 

voici mon code qui ne marche pas (erreur au niveau du if)
quelqu'un peut il m'aider?
 
 
#!/bin/bash
 
fichier_de_logs=messages.wri
 
for i in wc -l
if test regexp'cut -f fichier_de_logs -d " "' -eq ""
then
cat>>monfichier | cut -f fichier_de_logs -d " " 10 | cut -d "SRC="
cat>>monfichier '\n'
cat>>monfichier | cut -f fichier_de_logs -d " " 19 | cut -d "DPT="
else
cat>>monfichier | cut -f fichier_de_logs -d " " 9
cat>>monfichier | cut -f fichier_de_logs -d " " 18

n°670608
harlock59
Posté le 11-03-2004 à 11:22:16  profilanswer
 

après quelques corrections, voici mon code...
 
#!/bin/bash
 
fichier_de_logs=messages.wri;
 
for i in wc -l do
if cut -f fichier_de_logs -d " " 2 -eq ""
then
cat>>monfichier | cut -f fichier_de_logs -d " " 10 | cut -d "SRC="
cat>>monfichier '\n'
cat>>monfichier | cut -f fichier_de_logs -d " " 19 | cut -d "DPT="
else
cat>>monfichier | cut -f fichier_de_logs -d " " 9
cat>>monfichier | cut -f fichier_de_logs -d " " 18

n°670619
aigles
Posté le 11-03-2004 à 11:39:50  profilanswer
 

Pour stocker dans le fichier 'monfichier' les valeurs des champs SRC et PST du fichier 'messages.wri'

awk '{ print substr($9,5),substr($19,5) }' messages.wri > monfichier


 
Pour traiter ces valeurs :

awk '{ print substr($9,5),substr($19,5) }' messages.wri | \
while read Src Dst
do
   # Le traitement, par exemple :
   echo "SRC=$Src et DST=$Dst"
done


 
 
 


---------------
Jean Pierre.
n°670692
harlock59
Posté le 11-03-2004 à 13:36:35  profilanswer
 

merci beaucoup pour votre aide précieuse.

n°670720
harlock59
Posté le 11-03-2004 à 14:03:13  profilanswer
 

est-ce correct d'ecrire:
foreach lindex wc -l messages.wri ??

mood
Publicité
Posté le 11-03-2004 à 14:03:13  profilanswer
 

n°670747
harlock59
Posté le 11-03-2004 à 14:21:03  profilanswer
 

je suis un peu perdu dans mes acolades...
 
awk '{if (substr($16)="DF" messages.wri then
print substr($9,5),substr($19,5)}' messages.wri > log2
else print substr($9,5),substr($20,5)}

n°670769
aigles
Posté le 11-03-2004 à 14:40:48  profilanswer
 

En ce qui concerne le 'foreach' je ne crois pas que cet ordre existe en 'bash' (j'utilise 'ksh' pour ma part), il me semble que c'est du 'csh'.
La commande 'wc -l fichier' retourne le nombre de lignes et le nom du fichier. Su tu fais une boucle du type :
 

for lindex in $(wc -l message.wri);do


 
lindex va prendre successivement les valeurs 'nombre de lignes' et 'nom du fichier'. Je ne pensa pas que ce soit ce que tu veux faire.
 
Pour lire le fichier dans une boucle, il faut faire :
 

while read line
do
   echo "Ligne lue: $line"
done < message.wri


 
 
En ce qui concerne les accolades, tu mélanges 'awk' et 'bash'.
Dans ton cas tu peux tout faire avec un script 'awk'.
 

awk '
{
  if ($16 == "DF" )  
     print substr($9,5),substr($19,5)
  else
     print substr($9,5),substr($20,5)
} ' message.wri > log2



---------------
Jean Pierre.
n°670834
harlock59
Posté le 11-03-2004 à 16:08:25  profilanswer
 

merci encore...

n°673250
harlock59
Posté le 14-03-2004 à 16:29:13  profilanswer
 

quelqu'un pourrait-il me renseigner sur le fortran ou comment utiliser des bibliotheques graphiques pour afficher à l'écran des statistiques de fichiers de logs??
merci d'avance pour toute contribution de votre part..

n°673268
aigles
Posté le 14-03-2004 à 16:52:54  profilanswer
 

Ouvre un nouveau sujet.


---------------
Jean Pierre.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  pour extraire des infos d'un fichier texte

 

Sujets relatifs
Comment lire un fichier .vbs depuis une page HTML ???cacher email en js (pas email texte mais href d'une image)
[java]Transferer un fichier quelconque d'un client a un serveur ?[JavaScript] Copier un texte quand on click sur une image
Autre possibilité de faire défiler du texte que <marquee>[Fortran] Lire un fichier non formaté (résolu)
effacer un fichier sur le serveur...Hauteur boite de texte
[VB] Traybar en texteRenommer "un" fichier avec un .bat
Plus de sujets relatifs à : pour extraire des infos d'un fichier texte


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR