Précédent   Forum des professionnels en informatique > Systèmes > Autres systèmes > Unix
Unix Forum d'entraide sur les systèmes Unix et dérivés (*BSD, AIX, etc.). Avant de poster ->F.A.Q BSD F.A.Q. Aix
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 09/11/2009, 16h35   #1
Membre régulier
 
Inscription : mars 2007
Messages : 88
Détails du profil
Informations personnelles :
Âge : 38
Localisation : Belgique

Informations forums :
Inscription : mars 2007
Messages : 88
Points : 83
Points : 83
Par défaut KSH : fichier de paramètres séparés par ";" qui peuvent contenir des ";"

Hey,

Je suis en train d'écrire un petit script qui met à jour des données dans une db.
Je recois en entrée un fichier plat au format texte qui contient les données suivantes :
RecordID;free text

Il me suffit alors de faire un update dans ma db en rajoutant le free text au record identifié par RecordID. Facile non ?

Je fait donc une boucle pour lire tout le fichier d'entrée, je découpe la ligne en plusieurs variable et je fais appel à un script sql pour l'update :
Code :
1
2
3
4
5
while read parameters ; do
	param1=$(print $parameters|cut -f1 -d';')
	param2=$(print $parameters|cut -f2 -d';')
	sqlplus -s $ORACONNECT @$SQLFILE $param1 $param2
done < InputFile.txt
Le truc c'est que si le champ free text contient un ";" je ne récupère pas toute l'info pour l'update de mon record.
Avec une entrée tel que :
15465954;ceci est un champ texte libre; comme vous le voyez il contient un ";"
je n'update le record 15465954 qu'avec ceci est un champ texte libre et pas avec ceci est un champ texte libre; comme vous le voyez il contient un ";" comme je le voudrais..

Une idée ?
rafuoner est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/11/2009, 15h17   #2
Membre régulier
 
Inscription : mars 2007
Messages : 88
Détails du profil
Informations personnelles :
Âge : 38
Localisation : Belgique

Informations forums :
Inscription : mars 2007
Messages : 88
Points : 83
Points : 83
J'ai reçu cette solution-ci :
Code :
1
2
param1=${parameters%%;*}
param2=${parameters#*;}
et cela marche très bien.
rafuoner est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 02h03.


 
 
 
 
Partenaires

Hébergement Web