|
|
|
|
Bonjour,
voila je souhaite utiliser un fichier afin de faire un update dans ma base de données. Le contenu de mon fichier est :
GHO_FB_5633
1245
65
254
123
985
2564
etc..
J'ai besoin de recuperer tous les nombres qui sont sous GHO_FB_5633 et puis pouvoir faire un update d'un champ de ma table pour chacun de ses nombres :
ex :
update maTable set champ=6 where code= mon fichier
Est ce possible ?
ou alors comment faire pour traiter mon fichier afin de le formater de la sorte avec SED ou AWK ou autre:
fichier d'origine :
GHO_FB_5633
1245
65
254
123
985
2564
etc..
fichier traité :
update maTable set champ=6 where code= 1245
update maTable set champ=6 where code= 65
update maTable set champ=6 where code= 254
update maTable set champ=6 where code= 123
update maTable set champ=6 where code= 985
update maTable set champ=6 where code= 2564
Avez vous une idée?
Merci beaucoup
L'accès au savoir est la première liberté que chaque homme devrait avoir.Configuration: Linux Debian
Mozilla 1.8.1.14
Salut,
jp@MDK:~/tmpfs ssh$ cat fichier.txt
GHO_FB_5633
1245
65
254
123
985
2564
etc..
jp@MDK:~/tmpfs ssh$ cat foo.sh
#! /bin/bash
#set -xv
while read line
do
grep '^[0-9]' <<<${line} >/dev/null
if [ "$?" != 0 ]
then continue
else
echo "update maTable set champ=6 where code= ${line}" >> resultat.txt
fi
done < fichier.txt
jp@MDK:~/tmpfs ssh$ ./foo.sh
jp@MDK:~/tmpfs ssh$ cat resultat.txt
update maTable set champ=6 where code= 1245
update maTable set champ=6 where code= 65
update maTable set champ=6 where code= 254
update maTable set champ=6 where code= 123
update maTable set champ=6 where code= 985
update maTable set champ=6 where code= 2564
jp@MDK:~/tmpfs ssh$ou bien avec sed directement :jp@MDK:~/tmpfs ssh$ cat fichier.txt GHO_FB_5633 1245 65 254 123 985 2564 jp@MDK:~/tmpfs ssh$ sed -n '1d;s/.*/update maTable set champ=6 where code= &/w sortie.txt' fichier.txt jp@MDK:~/tmpfs ssh$ cat sortie.txt update maTable set champ=6 where code= 1245 update maTable set champ=6 where code= 65 update maTable set champ=6 where code= 254 update maTable set champ=6 where code= 123 update maTable set champ=6 where code= 985 update maTable set champ=6 where code= 2564 jp@MDK:~/tmpfs ssh$;-)) JP - Éleveur de pingouins - Faites un geste pour l'environnement, fermez vos fenêtres et adoptez un manchot.
|
Ben il suffit de définir et de rajouter une variable "CODERES" soit dans le script "bash" soit dans la ligne de "sed" :
CODERES=xxx
echo "update maTable set champ=6 where code='${CODERES}_ ${line}" >> resultat.txt
CODERES=xxx
sed -n "1d;s/.*/update maTable set champ=6 where code='${CODE}_&'/w sortie.txt" fichier.txt;-))
JP - Éleveur de pingouins - Faites un geste pour l'environnement, fermez vos fenêtres et adoptez un manchot.
|