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:
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.
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'
....
"
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:
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"'
..... |
Re: shell: Problème pour gérer les majuscules et minuscules
Ca fait quelquechose comme ça :
Code:
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.
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.
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:
nomfic=$(ls $rep$1_num$2.[Tt][Xx][Tt])
donne un contenu satisfaisant dans $nomfic, alors il sera aussi possible de faire
Code:
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 :?