IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linux Discussion :

traitement d'un fichier txt par un srcipt shell


Sujet :

Linux

  1. #1
    Futur Membre du Club
    Inscrit en
    Juin 2010
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 9
    Points : 6
    Points
    6
    Par défaut traitement d'un fichier txt par un srcipt shell
    bonjour a tous

    je suis un debutant en programmation shell et j'ai un souci pour traiter un fichier txt (separateur ") ( je travaille sous une plate forme linux redhat)
    en effet j ai un fichier qui se presente sous la forme du 1er fichier joint:

    fichier1.txt

    -pour obtenir un fichier excel sous cette forme :

    fichier2.xls

    -et enfin un resume des occurences comme le 3eme fichier excel:

    resume.xls

    merci d avance pour votre aide
    je reste disponible pour de plus amples informations
    Fichiers attachés Fichiers attachés

  2. #2
    Membre averti
    Homme Profil pro
    Gérant infopsylon
    Inscrit en
    Juin 2010
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Gérant infopsylon
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2010
    Messages : 215
    Points : 328
    Points
    328
    Par défaut
    Bonjour,

    Quel est votre besoins en fait ? A partir du fichier texte, vous voulez obtenir le fichier excel ?

    Lilian.

  3. #3
    Futur Membre du Club
    Inscrit en
    Juin 2010
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 9
    Points : 6
    Points
    6
    Par défaut traitement d'un fichier txt par un srcipt shell
    bonsoir lilian_h

    en fait je veux obtenir par un traitement automatique a partir du fichier TXT les deux fichiers excel.



    merci

  4. #4
    Futur Membre du Club
    Inscrit en
    Juin 2010
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 9
    Points : 6
    Points
    6
    Par défaut traitement d'un fichier txt par un srcipt shell
    bonjour a tous

    je veux juste donner de plus amples explications

    j'ai besoin d'aide pour ecrire un script shell capable de traiter un fichier txt ligne par ligne.

    voici le format du fichier txt

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <gras> Header SEV="":ACKSTS="":FRDNAME="":EVTTYPE="":SPECPB="":EVTTIME="":CLRSTS="":CLRTIME="";</gras>
    SEV="MINOR":ACKSTS="NACK":FRDNAME="BSCMAN DUEKOUE_2 ra 1":EVTTYPE="EQUIPMENT":SPECPB="183899 , RX-TX [10] ANTENNA-VSWR-WARNING [11]":EVTTIME="2011/06/14 06:07:22":CLRSTS="CLR":CLRTIME="2011/06/14 06:07:33";
    en gras correspond a l'entete du fichier

    ce qui suit correspond a une ligne du fichier txt.

    1)donc ce que je veux faire d'abord c est de rechercher toutes les lignes ou j'ai SEV="indeterminate" et les supprimer

    2) de rechercher dans les lignes le nom du champ FRDNAME ( exemple dans cette ligne FRDNAME = BSCMAN DUEKOUE_2 ra1 ) et de compter le nombre de fois ce nom apparait et si il est superieur ou egal 30 fois copier toutes les lignes dans un fichier excel et inscrire en face dans une colone le nombre de ligne compte.

    merci d avance pour votre aide

  5. #5
    Membre averti
    Homme Profil pro
    Gérant infopsylon
    Inscrit en
    Juin 2010
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Gérant infopsylon
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2010
    Messages : 215
    Points : 328
    Points
    328
    Par défaut
    Bonjour,

    Ce n'est pas possible de manipuler des fichiers Excel en shell.

    Peut-être que vous devriez voir à utiliser un fichier CSV.

    Sinon, avez vous commencé à écrire quelque chose ?

    Lilian.

  6. #6
    Futur Membre du Club
    Inscrit en
    Juin 2010
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 9
    Points : 6
    Points
    6
    Par défaut traitement d'un fichier txt par un srcipt shell
    salut

    s il te plait puis avoir des codes pour chercher un mot spécifique dans des lignes et s il trouve le mot spécifique , copier la ligne autant de fois qu'il le comptera dans un autre fichier txt en inscrivant la fin de chaque ligne le nombre total de ligne contenant le mot spécifique.


    merci de ton aide .

  7. #7
    Membre averti
    Homme Profil pro
    Gérant infopsylon
    Inscrit en
    Juin 2010
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Gérant infopsylon
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2010
    Messages : 215
    Points : 328
    Points
    328
    Par défaut
    Bonjour,

    Ce forum n'a pas pour vocation de réaliser votre travail à votre place.

    Essayez d'écrire quelque chose, dès que vous bloquerez nous vous aiderons.

    Bonne journée,
    Lilian.

  8. #8
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 291
    Points : 4 941
    Points
    4 941
    Billets dans le blog
    5
    Par défaut
    Pour commencer regarde l'application sed (man sed) puis comment on utilises les pipes. Ca va te donner une base pour commencer à extraire des données de ton fichier.

  9. #9
    Futur Membre du Club
    Inscrit en
    Juin 2010
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    bonjour
    j`ai pu trouver quelque chose

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #!/bin/bash
    #
    #
    cut -d '"' -f6,10,12,16 micra.txt > micra1.txt # cette ligne récupère les champs dont j`ai besoin dans fichier source
     
    grep "DUEKOUE_2" micra1.txt? > final.txt# cette ligne recherche un nom spécifique et copie toute les lignes qui contiennent ce critère
     
    nl final.txt? > final2.txt # ce code numérote les lignes du fichier obtenu
    Mes problèmes sont :

    J'ai plusieurs critère a rechercher donc je voudrais les passer en argument pour chaque critère donc j'ai crée un fichier .conf ou je liste tous mes arguments.
    Exemple du fichier .conf :

    etc ..
    Je veux que mon script puisse venir chercher l'argument dans ce fichier et lire le fichier initial et copier les lignes qui comporte ce critère si l’occurrence de ce dernier est supérieur ou égal 30.
    NB: pour chaque argument créer un nouveau fichier.

    pourvoir passer chaque fichier créé en argument pour pourvoir numéroté chaque ligne

    Merci d avance pour vos réponses.
    Cordialement.

  10. #10
    Futur Membre du Club
    Inscrit en
    Juin 2010
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 9
    Points : 6
    Points
    6
    Par défaut traitement d'un fichier txt par un srcipt shell
    Bonjour.

    Juste pour vous informer que j'ai résolu mon problèmeàa force patience et de recherche.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    #!/bin/bash
    #
    # Written by bangouame koissi ghislain  - 11 oct. 2011 a 02:01
    #
    FICH=micra1
     
    for btsx in $(cat fichierBTS.conf); do
       bts=$(echo $btsx|cut -d';' -f1)
       i=$(echo $btsx | grep -c $bts $FICH)
    echo "***********************************************"   
    echo $bts "-->" 
    echo $i
     
    if test $i -ge 30;
     
    then
     
    grep $bts $FICH | cut -d'"' -f 1,2,3,4 > $bts
     
       else 
     
       echo "Pas de probleme !!!!"
     
       fi
    echo "\n***********************************************"
     
    done

  11. #11
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 552
    Points : 19 392
    Points
    19 392
    Par défaut
    Bonjour,

    soit en BASH>=4 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    #!/bin/bash
     
    nbMatch=1
    declare -A aArr
     
    while IFS=';' read mot _
    do [ -n "$regex" ] && regex="$regex|$mot" || regex="$mot"
    done < fichierBTS.conf
     
    while read line
    do [[ $line =~ ($regex) ]] && {
          (( match_${BASH_REMATCH} ++ ))
          aArr[${BASH_REMATCH}]+=$(IFS='"'; set -- $line; echo "$6 ${10} ${12} ${16}")$'\n'
       }   
    done <micra1
     
    for i in ${!aArr[@]}
    do (( $(eval echo "\${match_$i}") >= nbMatch )) && echo "${aArr[$i]%*$'\n'}" #> "$i" ##redirection mise en commentaire pour les tests
    done
    ainsi les fichiers ne sont lus qu'une seule fois.
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  12. #12
    Futur Membre du Club
    Inscrit en
    Juin 2010
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 9
    Points : 6
    Points
    6
    Par défaut traitement d'un fichier txt par un srcipt shell
    bonjour N_BaH

    merci pour ta contribution mais peux-tu ajouter des commentaires pour que je puisse mieux comprendre ton code.

    stp une question en passant peux-tu me dire comment puis je transformer ce format date et heure : 20111027191609.8Z en 2011/10/27 19:16:09.8Z par une commande shell simple

    merci d'avance.

  13. #13
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 552
    Points : 19 392
    Points
    19 392
    Par défaut
    peux-tu ajouter des commentaires pour que je puisse mieux comprendre ton code
    non, ce travail est laissé à ta charge. Tout est dans le man bash.

    ta requête supplémentaire aurait dû faire l'objet d'un nouveau post, et à reçu des réponses très satisfaisantes sur un autre site.
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. traitement d'un fichier txt
    Par arezki76 dans le forum Shell et commandes GNU
    Réponses: 7
    Dernier message: 22/06/2007, 14h36
  2. Réponses: 9
    Dernier message: 03/01/2007, 17h06
  3. Exportation d'1 fichier txt par une procédure stockée
    Par loutsky dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 15/06/2006, 18h25
  4. Lire un fichier txt par http (C sous Linux)
    Par sleg dans le forum Réseau
    Réponses: 4
    Dernier message: 18/10/2005, 11h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo