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 - Problème pour gérer les majuscules et minuscules


Sujet :

Linux

  1. #1
    Membre habitué
    Inscrit en
    Décembre 2005
    Messages
    455
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 455
    Points : 166
    Points
    166
    Par défaut Shell - Problème pour gérer les majuscules et minuscules
    Bonjour,

    J'ai un fichier plat à aprtir duquel je fais un sql loader.
    Ce fichier plat peut être soit fichier.TXT ou fichier.txt.
    voici une partie de monde code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    echo "LOAD DATA
    INFILE '$rep/$1_num$2.[Tt][Xx][Tt]'
    STREAM 
    BADFILE       '$LOGS/fichier.BAD'  
    DISCARDFILE   '$LOGS/fichier.DISCARD'
    .....
    $1 et $2 étant des paremètres.
    mais il ne me prends pas en compte [Tt][Xx][Tt] il le traduit comme tel.
    Donc comment faire?
    si quelqu'un a une solution merci.

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 778
    Points
    30 778
    Par défaut Re: shell: Problème pour gérer les majuscules et minuscules
    Citation Envoyé par claralavraie
    Donc comment faire?
    Comme tu le faisais dans ton script de départ : en récupérant le résultat de la commande ls
    nomfic=$(ls $rep$1_num$2.[Tt][Xx][Tt])
    echo "....
    INFILE '$nomfic'
    ....
    "
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Membre expert
    Avatar de 2Eurocents
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 177
    Points : 3 166
    Points
    3 166
    Par défaut Re: shell: Problème pour gérer les majuscules et minuscules
    Il y a aussi la possibilité de fermer les doubles-quotes du echo pour sortir la variable en profitant de la substitution de fichiers par le shell, et rouvrir les doubles-quotes ensuite pour le reste du echo.

    Ca fait quelquechose comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    echo "LOAD DATA
    INFILE '"$rep/$1_num$2.[Tt][Xx][Tt]"'
    STREAM 
    BADFILE       '"$LOGS/fichier.BAD"'  
    DISCARDFILE   '"$LOGS/fichier.DISCARD"'
    .....
    La FAQ Perl est par ici
    : La fonction "Rechercher", on aurait dû la nommer "Retrouver" - essayez et vous verrez pourquoi !

  4. #4
    Membre habitué
    Inscrit en
    Décembre 2005
    Messages
    455
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 455
    Points : 166
    Points
    166
    Par défaut Re: shell: Problème pour gérer les majuscules et minuscules
    Ca fait quelquechose comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    echo "LOAD DATA
    INFILE '"$rep/$1_num$2.[Tt][Xx][Tt]"'
    STREAM 
    BADFILE       '"$LOGS/fichier.BAD"'  
    DISCARDFILE   '"$LOGS/fichier.DISCARD"'
    .....
    [/quote]

    J'ai essayé ton code mais cela ne fonctionne pas.

    Je fais essayer la solution de al1-24.

  5. #5
    Membre habitué
    Inscrit en
    Décembre 2005
    Messages
    455
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 455
    Points : 166
    Points
    166
    Par défaut Re: shell: Problème pour gérer les majuscules et minuscules
    Citation Envoyé par al1_24
    Citation Envoyé par claralavraie
    Donc comment faire?
    Comme tu le faisais dans ton script de départ : en récupérant le résultat de la commande ls
    nomfic=$(ls $rep$1_num$2.[Tt][Xx][Tt])
    echo "....
    INFILE '$nomfic'
    ....
    "
    Cela ne fonctionne pas non plus.

  6. #6
    Membre expert
    Avatar de 2Eurocents
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 177
    Points : 3 166
    Points
    3 166
    Par défaut Re: shell: Problème pour gérer les majuscules et minuscules
    Je viens de voir que ma proposition ne pouvait pas marcher, pour une raison de priorité des différentes substitutions opérées par le shell (vu dans le man de bash). Elle ne fonctionne que pour des affichages de variables simples.

    Citation Envoyé par claralavraie
    Citation Envoyé par al1_24
    Citation Envoyé par claralavraie
    Donc comment faire?
    Comme tu le faisais dans ton script de départ : en récupérant le résultat de la commande ls
    nomfic=$(ls $rep$1_num$2.[Tt][Xx][Tt])
    echo "....
    INFILE '$nomfic'
    ....
    "
    Cela ne fonctionne pas non plus.
    Nous ne sommes pas forcément très avancés de ne pas savoir comment cela échoue

    Quoi qu'il en soit, si la partie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nomfic=$(ls $rep$1_num$2.[Tt][Xx][Tt])
    donne un contenu satisfaisant dans $nomfic, alors il sera aussi possible de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    echo "....
    INFILE '"$nomfic"'
    ....
    "
    Voire même encore plus simple au niveau de la gestion des quotes.

    Maintenant, je me demande s'il ne faudrait pas réfléchir un peu plus à la manière de constituer préalablement ta commande pour SQL, plutôt que de retoucher étape par étape et de tomber à chaque étape sur un problème induit par la résolution de l'étape précédente
    La FAQ Perl est par ici
    : La fonction "Rechercher", on aurait dû la nommer "Retrouver" - essayez et vous verrez pourquoi !

  7. #7
    Membre habitué
    Inscrit en
    Décembre 2005
    Messages
    455
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 455
    Points : 166
    Points
    166
    Par défaut
    j'ai changé depuis hier mon .sh (en raison de certaines demandes du à mon travail).
    Du coup j'appelle mon .sh à partir de la manière suivantes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ls -latr $rep/fichier_num* |  awk ' {cmd=sprintf("charger.sh fichier %s || exit 1",substr($9,31,3)); system(cmd); } '
    Avec 2 paramètres.
    Donc j'en ai ajouté un 3ème comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ls -latr $rep/fichier_num* |  awk ' {cmd=sprintf("charger.sh fichier %s %s|| exit 1",substr($9,31,3),substr($9,35,3));
                                      system(cmd);
                                   } '
    Ainsi je récupère txt ou TXT.
    Je ne sais pas si c'est la meilleure solution mais au moins cela fonctione.

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

Discussions similaires

  1. [SHELL] ajouter des paramètres pour une commande shell
    Par anissben dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 11/12/2010, 14h36
  2. Shell : besoin de confirmation pour mon script
    Par nero76 dans le forum Linux
    Réponses: 1
    Dernier message: 17/07/2009, 12h56
  3. Probèle de package pour un WS avec Axis
    Par demcoul dans le forum Services Web
    Réponses: 3
    Dernier message: 05/11/2008, 17h14
  4. Un probleme pour shell et un probleme pour SqlLDR
    Par XnaMitch dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 13/10/2008, 20h50
  5. [onKeydown] Probleme avec pour detecter les majuscules des minuscules
    Par magnus2005 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 29/09/2006, 23h48

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