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 :

shell : sed et anti-côtes


Sujet :

Linux

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Avril 2007
    Messages : 19
    Points : 20
    Points
    20
    Par défaut shell : sed et anti-côtes
    Bonjour,
    Je dois modifier une liste de publications de la forme suivante :

    [1] Lassaad Baati, C. Frydman, N. Giambiasi ``LSISDME M&S Environment Extended by Dynamic Hierarchical Structure DEVS Modeling Approach'', in: 2007 DEVS Integrative M&S Symposium, Part of the 2007 Spring Simulation Multiconference, SpringSim07, SCS, acm, Norfolk, Virginia, USA, mars 2007. à paraître.

    que je veux transformer en :
    insert into Publication (equipe, titre, lieu, date_, parution) values (LSISDME M&S Environment Extended by Dynamic Hierarchical Structure DEVS Modeling Approach'', in: 2007 DEVS Integrative M&S Symposium, Part of the 2007 Spring Simulation Multiconference, SpringSim07, SCS, acm, Norfolk, Virginia, USA, mars 2007. à paraître.);

    je n'arrive pas à repérer les anti-côtes avec sed ou awk, pour l'instant mon script ressemble à :
    tr \' ' ' < publiCOSI.txt | sed -e"s/^[[0-9]*].*``/BEGINLINE/g" -e"s/BEGINLINE/);\ninsert into Publication (equipe, titre, lieu, date_, parution) values ( /g" > publiCOSI.sql

    je modifierai s'il le faut le contenu des parenthèses du insert à la main, mais en attendant j'aimerais pouvoir supprimer tous ces noms d'auteur d'un coup d'un seul en lisant la ligne jusqu'aux deux anti-côtes mais cela ne fonctionne pas. Je n'y arrive pas.

    quelqu'un saurait-il y faire ?

  2. #2
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 690
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 690
    Points : 30 984
    Points
    30 984
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par zg2pro Voir le message
    Bonjour,
    Je dois modifier une liste de publications de la forme suivante :

    [1] Lassaad Baati, C. Frydman, N. Giambiasi ``LSISDME M&S Environment Extended by Dynamic Hierarchical Structure DEVS Modeling Approach'', in: 2007 DEVS Integrative M&S Symposium, Part of the 2007 Spring Simulation Multiconference, SpringSim07, SCS, acm, Norfolk, Virginia, USA, mars 2007. à paraître.

    que je veux transformer en :
    insert into Publication (equipe, titre, lieu, date_, parution) values (LSISDME M&S Environment Extended by Dynamic Hierarchical Structure DEVS Modeling Approach'', in: 2007 DEVS Integrative M&S Symposium, Part of the 2007 Spring Simulation Multiconference, SpringSim07, SCS, acm, Norfolk, Virginia, USA, mars 2007. à paraître.);
    Ben déjà tu as 4 colonnes dans ton insert et si je compte le nombre de virgules du values, je trouve 10 zones de data différentes. Même si t'arrivais à extraire l'info qui t'intéresse de ton fichier, ton insert sql ne fonctionnerait pas !!!

    Citation Envoyé par zg2pro Voir le message
    je n'arrive pas à repérer les anti-côtes avec sed ou awk
    Parce que les anti-quotes sont un caractère spécial shell qu'il faut inhiber avec du backslash

    Citation Envoyé par zg2pro Voir le message
    quelqu'un saurait-il y faire ?
    Moi je sais extraire l'info qui t'intéresse
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    #!/bin/sh
     
    data=`sed -e "s/^.\\\{1,\\\}\\\`\\\`//g" publiCOSI.txt`
    echo "data=[$data]"
    Ensuite, pour la requête SQL ben je pige pas trop qui va où...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  3. #3
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Avril 2007
    Messages : 19
    Points : 20
    Points
    20
    Par défaut merci
    Non mais je sais pour le contenu du values que je dois le remodeler ensuite, c'est ingerable même avec un script ça à mon avis. Maintenant je suis déjà bien aidé pour reformater mon fichier à la base déjà...
    merci

  4. #4
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 690
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 690
    Points : 30 984
    Points
    30 984
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par zg2pro Voir le message
    c'est ingerable même avec un script ça à mon avis.
    Si t'as aucun moyen de distinguer quelle info va à droite de celle qui va à gauche t'as aucun moyen de programmer un script pour ça...

    Citation Envoyé par zg2pro Voir le message
    Maintenant je suis déjà bien aidé pour reformater mon fichier à la base déjà...
    merci
    Si tu peux rajouter des point-virgules ou des deux-points pour séparer les infos...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

Discussions similaires

  1. [Shell][sed]utilisation d'un sed pour gérer des doubles quotes
    Par bstevy dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 06/03/2015, 11h03
  2. fonction anti côte
    Par max33370 dans le forum ASP.NET
    Réponses: 3
    Dernier message: 18/01/2010, 10h16
  3. Shell : sed, substitute et parenthèse capturante
    Par supertotal dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 04/05/2009, 12h22
  4. Suppression d'une ligne en shell ' sed' ou 'head'
    Par Findly dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 04/01/2008, 14h12
  5. La commande sed ne prend pas ma variable du shell
    Par Michaël dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 03/10/2006, 19h11

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