Lister contenu répertoire et passage argume

Résolu
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:

$ 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

  1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    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...
    0
  2. cobra85 Messages postés 148 Statut Membre 3
     
    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
    0
  3. cobra85 Messages postés 148 Statut Membre 3
     
    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
    0
  4. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    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
    
    ;-))
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. cobra85 Messages postés 148 Statut Membre 3
     
    Merci

    cela marche, comme je veux.

    Encore 2 - 3 test et je mettrait sujet résolu.

    MERCI
    0