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

Shell et commandes GNU Discussion :

Récupération d'info dans un fichier txt + traitements


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 13
    Par défaut Récupération d'info dans un fichier txt + traitements
    Bonjour a tous,

    Je me permets de solliciter un peu d'aide car je suis un peu perdu ...

    Alors voila je dois faire un script qui récupère un fichier texte sur un serveur ftp d'un AS/400 et ensuite je dois traiter ce fichier ligne par ligne pour faire des vérification sur des mots précis et les placé dans des variables (de façon a alimenté une interface de supervision )

    - Récupération du fichier sur l'AS/400 + Conversion au format linux : ok
    - Alimenté l'interface de supervision : ok

    - lire le fichier ligne par ligne et afficher le contenu via "while read line ; do echo -e $line done < fic.txt : ok

    Par contre je n'arrive pas a faire des cut c1-9 et donc je n'arrive pas à faire de traitement sur ces lignes.


    Si quelqu'un a une idée ...
    NB: Je commence seulement à apprendre ^^

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Par défaut
    Salut,

    Montres-nous plutôt à quoi ressemblent ces lignes et ce que tu veux récupérer exactement...

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 13
    Par défaut
    Alors voila à quoi ressemblent en gros les lignes.
    A savoir que chaque argument de la ligne est positionné sur un certain nombre d'octets et qu'il n'y a aucun délimiteur et que par conséquent le champ "actif" peut se transformer en "inactif mais ok"
    Donc j'aimerais "découper" la ligne selon un certain nombre d'octets pour les placer dans des variables sur lesquelles je ferais des comparaisons ensuite.


    RAZ01  ABC  CFTLOG1                Actif                                                                                                                                                            09/04/11  23:15:1900
    RAZ01  BCD  CFTMAIN1               Actif                                                                                                                                                            09/04/11  23:19:1800
    RAZ02  JOB  CFTTCOM1               Actif                                                                                                                                                            09/04/11  23:15:2700
    RAZ02  JOB  CFTTFIL1               Actif                                                                                                                                                            09/04/11  23:19:3100
    TOR01  JOB  CFTTPRO1               Actif                                                                                                                                                            09/04/11  23:19:1800
    TOR02  JJQ  S_SCNCSV1              Actif                                                                                                                                                            03/01/12  20:00:0000
    Bon ici tout est séparé par un simple espace mais la ligne fait dans les 248 octets avant un retour a la ligne.
    Chaque ligne comporte 8 champs délimités par un nombre d'octets standard.

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Par défaut
    Citation Envoyé par Bhaalou Voir le message
    et qu'il y a aucun délimiteur
    Euh... et les espaces ce n'est pas un séparateur ?

    et que par conséquent le champ "actif" peut ce transformer en "inactif mais ok"
    Et ça a son importance ou pas ?

    Donc j'aimerais "decouper" la ligne selon un certain nombre d'octet pour les placer dans des variables sur lequelles je ferais des comparaison ensuite.
    Ça ne nous dit toujours pas ce que tu veux récupérer exactement ?

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 13
    Par défaut
    "Euh... et les espaces ce n'est pas un séparateur ?"

    Bien sur que oui, mais le champ 4 peut contenir une phrase avec plusieurs espace.

    "Et ça a son importance ou pas ?"

    Oui car je peux avoir une phrase de 160 caractères.

    "Ça ne nous dit toujours pas ce que tu veux récupérer exactement ?"

    J'aimerais récupérais les 8 champs dans des variables de façon a pouvoir faire des traitements et selon leurs états.

    Merci pour ton intérêt a mon soucis

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Par défaut
    On peut avoir un exemple CONCRET s'il te plaît ?

    Et si possible placé dans une balise "code" (le dièse (#) dans l'éditeur de texte) afin d'avoir tous les caractères), ou en pièce jointe à la limite

  7. #7
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 13
    Par défaut
    Pour le moment voila ce que j'essaye de faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    while read line ; do
     
    C1= cut -c 1-9
    C2= cut -c 10-14
    ...
    ...
     
    echo "$C1"
    echo "$C2"
    ...
    ...
     
    done < fichier.txt
    Mais seul le echo "$C1" s'affiche ....
    Donc je n'arrives pas a mettre les autres champs dans des variables pour faire des traitement via "if" ... sniff

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

Discussions similaires

  1. Récupération de chiffre dans un fichier txt
    Par chouchouilloux dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 26/02/2010, 16h08
  2. [MySQL] Récupération de chiffre dans un fichier txt
    Par chouchouilloux dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 26/02/2010, 15h29
  3. Récupérations d'infoS dans un fichier texte
    Par remsrock dans le forum C#
    Réponses: 8
    Dernier message: 01/07/2008, 18h38
  4. Réponses: 6
    Dernier message: 20/01/2008, 16h32
  5. Réponses: 4
    Dernier message: 08/04/2006, 09h10

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