Lister contenu répertoire et passage argume
Résolu
cobra85
Messages postés
148
Statut
Membre
-
cobra85 Messages postés 148 Statut Membre -
cobra85 Messages postés 148 Statut Membre -
Bonjour,
Je voudrai un script shell ou bash pour recupérer des noms de fichiers sans l'extention si possible dont je ne connait pas les noms et les passer en arguments pour les inserer dans des requetes SQL et les mettre en fin de nom.
J'ai un "debut" de script pour supprimer les extentions:
Début de script pour le passage d'argument:
$ X=22
$ le prix est de ${X}
le probleme est que je n'arrive pas à mixer tout cela pour faire un script potable
Merci
Je voudrai un script shell ou bash pour recupérer des noms de fichiers sans l'extention si possible dont je ne connait pas les noms et les passer en arguments pour les inserer dans des requetes SQL et les mettre en fin de nom.
J'ai un "debut" de script pour supprimer les extentions:
$ F='rep/toto.txt'
$ echo $ {F%.*}
rep/toto
Début de script pour le passage d'argument:
$ X=22
$ le prix est de ${X}
le probleme est que je n'arrive pas à mixer tout cela pour faire un script potable
Merci
Configuration: Systeme: Windows XP Home SP3, 80 DDR, 1Go RAM Antivirus: Avast Pare-feu: fournit par Windows Autres: CCleaner, Spybot
5 réponses
-
Salut,
A quoi ressemble ta requête SQL et où doivent être insérés les noms sans extensions ?
En gros un exemple du contenu de ton répertoire, suivi d'un exemple de ta requête tel qu'elle doit être...
-
Voici une partie du code.
Je voudrai que le fichier coordonnee1 qui est inscrit en dur puisse etre remplacé par les noms des fichiers de manieres dynamique, sans être obligé de créer un script pour chaque fichier.
le nom doit etre inscrit dans la requete SQL.
Ici, remplacer tout les coordonnee1 par un passage d'argument qui inscriera le nom du fichier.
#$ nl adress_coordonnee1.awk { sed "s/address /'/g" adress2_coordonnee1.txt > adress1_coordonnee1.txt sed "s/rue/'/g" adress1_coordonnee1.txt > adress2_coordonnee1.txt #permet de vider la table avant de la remplir echo 'echo "truncate table "adresse_coordonnee1" ;" | mysql fournisseur ' > ADRESSE_FINAL_COORDONNEE1.sql #affiche "insert into ..." dans un fichier nommé adress_text.csv echo 'echo "insert into adresse_coordonnee1 (adresse, rue) values '> adress_text.csv #permet d'inserer les données de adress1_coordonnee1.txt dans adress_text.csv tout en gardant en mémoire les valeurs déja inscrites dans ce fichier. cat adress1_coordonnee1.txt >> adress_text.csv #permet de supprimer les retours chariots du fichier adress_text.txt puis de tout mettre dans un fichier adress1_text.csv tr -d '\r\n' < adress_text.csv > adress1_text.csv sed 's/)(/), (/g' adress1_text.csv > adress2_text.csv sed 's/)*$/);" | mysql founisseur/g' adress2_text.csv > adress3_text.csv echo -e '\n' >> adress3_text.csv cat adress3_text.csv >> ADRESSE_FINAL_COORDONNEE1.sql #permet de supprimer définitivement les fichiers intermédiaires générés après l'éxécution du script sans les mettre dans la poubelle. Il ne restera que ADRESSE_FINAL.sql rm adress3_COORDONNEE1.txt rm adress2_COORDONNEE1.txt rm adress1_COORDONNEE1.txt rm adress_text.csv rm adress1_text.csv rm adress2_text.csv rm adress3_text.csv }
merci -
J'ai oublié, pour le contenu du répertoire, les fichier peuvent etre du type.
Répertoire: Carnet adresse
Fichier:
coordonnee1.txt
coordonnee2.txt
coordonnee2.cfg -
Re-
for fich in *;do sed "s/address /'/g" adress2_${fich%.*}.txt > adress1_${fich%.*}.txt sed "s/rue/'/g" adress1_${fich%.*}.txt > adress2_${fich%.*}.txt etc. ... done;-))
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Merci
cela marche, comme je veux.
Encore 2 - 3 test et je mettrait sujet résolu.
MERCI