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 POSIX Discussion :

Script d'extraction d'une partie de documents avec paramètre


Sujet :

Shell et commandes POSIX

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2013
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2013
    Messages : 31
    Points : 38
    Points
    38
    Par défaut Script d'extraction d'une partie de documents avec paramètre
    Bonjour

    Dans le cadre d'un exercice je dois créer un script allant extraire une partie de document selon le paramètre qui lui aété donné.


    Les documents (en l'occurence des manuel) sont séparés par une chaine de "__________"


    Dans le cas ou le paramètre n'est pas contenue dans le fichier je dois retourner un message d'erreur.


    A première vue, un algorithme aurait pu être utile, mais il nous ais demandé de le faire sans.


    donc au final je suis assez coincé, a priori j'imagine que je dois utiliser les éditeurs de stream grep, sed et cut, seulement je ne trouve pas les options qui m'interressees et surtout je ne sais pas comment prendre en compte le cas ou le paramètre n'est pas trouvé..


    pour le moment je m'en tiens à un cat ./fichier | sed -n '/\$1/,/__________/p'.


    De ce que j'avais lu concernant cette comdmande de sed, cela me permettais d'afficher le texte entre deux pattern, en l'occurence $1 et "__________" ici.


    seulement je n'ai pas de résultat au final.


    et cela ne prend pas en compte les paramètres non reconnu :/


    Voilà, donc si vous avez un indice sur la voie que je devrais suivre pour résoudre mon problème, je suis preneur


    Merci d'avance.


    P.S. je pense que je vais prendre mes aises ici, je vais certainement passer pas mal de temps dans le coin

  2. #2
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 842
    Points
    7 842
    Par défaut
    Citation Envoyé par rzXbrain Voir le message
    A première vue, un algorithme aurait pu être utile, mais il nous ais demandé de le faire sans.
    ɹǝsn *sıɹɐlos*

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2013
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2013
    Messages : 31
    Points : 38
    Points
    38
    Par défaut
    C'est le fait de se passer d'algo qui te fait ca ou bien le fait que tu pense qu'il y a une solution bien plus simple qu'un algo? XD

    Finalement j'ai tenté d'utiliser un algo, seulement le shel essai de passer en commande les éléments de mon if :/

    Dés que j'aurais le temps je copierais mon code.

  4. #4
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 842
    Points
    7 842
    Par défaut
    Il faudrait que tu expliques comment résoudre un problème sans définir les étapes pour y arriver ... ou alors on n'a pas la même définition du mot algorithme.
    ɹǝsn *sıɹɐlos*

  5. #5
    Rédacteur

    Avatar de ok.Idriss
    Homme Profil pro
    IS Consultant
    Inscrit en
    Février 2009
    Messages
    5 220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : IS Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 5 220
    Points : 19 452
    Points
    19 452
    Par défaut
    Bonsoir.

    @jlliagre : je pense qu'il veux dire par là qu'il doit utiliser des commandes prévu à cet usage plutôt que de ré-inventer la roue avec le shell de base. Fin je suppose simplement... et si c'est le cas, en effet la formulation n'est pas bonne

    @rzXbrain : petite remarque sur ta commande pour commencer : l'utilisation de cat est superflue. Lire la partie "éviter les processus inutiles" de cet article.

    En l'occurrence ton sed peux directement s'appliquer au fichier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed [options...] [expressions...] fichier
    Ensuite il nous faudrait un exemple précis de fichier en entré et de résultat attendu, en l'occurrence tu nous donne le séparateur. C'est pas suffisant, on ne peux pas deviner quels sont les types de paramètres qui te permettent de retrouver la section dans le fichier, etc.

    Enfin, à première vue je n'utiliserai pas sed... mais plutôt grep ou awk pour ce genre de choses (et oui ça revient à écrire un petit algo mais avec un outil optimisé pour le parsing de fichiers avec des formats exotiques). Fin bon, pour t'aiguiller vers une solution pertinente, il nous faudrait plus de détails.

    Cordialement,
    Idriss

  6. #6
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 459
    Points
    13 459
    Par défaut
    Bonjour

    • Dans un script sed, l'adressage /bla/,/blo/ désigne le paragraphe dont la première ligne contient bla et la dernière contient blo.
      Si c'est sur la même ligne, tu vas être déçu.
    • Si c'est sur la même ligne, a toi de construire une expression régulière qui te satisfasse.
    • En ce qui concerne le filtrage, la sortie et le message d'erreur, peut-être peux-tu t'inspirer de cet exemple de console ?
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      $ grep "x9" *.txt || echo 'erreur!'
      trut.txt:x9
      $ grep "x23" *.txt || echo 'erreur!'
      erreur!
      $
      (Je précise que dans mes fichiers txt, j'ai le fichier trut.txt qui contient une ligne avec seulement x9 et aucun fichier avec x23).
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

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

Discussions similaires

  1. [RegEx] Extraction d'une partie d'une URL par expression régulière
    Par Maxbenji dans le forum Langage
    Réponses: 2
    Dernier message: 16/01/2007, 22h26
  2. Extraction d'une partie d'une chaine..
    Par spyk dans le forum Delphi
    Réponses: 2
    Dernier message: 01/09/2006, 08h34
  3. Extraction d'une partie d'une chaine
    Par stk dans le forum Langage
    Réponses: 4
    Dernier message: 18/12/2005, 03h24
  4. Extraction d'une partie d'une image
    Par popol666 dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 25/09/2005, 21h13
  5. Extraction d'une partie d'une colonne
    Par choubiroute dans le forum Oracle
    Réponses: 8
    Dernier message: 01/06/2005, 14h29

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