Probleme passage d'argument
Résolu
Bonjour,
j'ai un fichier .txt dont je ne connait pas le nom (appelons ADRESSE.txt ici)
j'ai le code suivant inscrit dans le fichier adresse.awk
Lorsque je fais un crontab, il me sort un fichier portant le nom: ADRESSE_FINAL_*.sql au lieu de ADRESSE_FINAL_ADRESSE.sql dans le répertoire root
Mais lorsque je l'exécute via le terminal:
cd /home/test/nico
# ./adresse.awk
j'ai un fichier nommer ADRESSE_FINAL_ADRESSE.sql qui apparait dans mon répertoire test
Comment faire pour exécuter le fichier adresse.awk pour qu'il me sorte un fichier ADRESSE_FINAL_ADRESSE.sql avec un crontab ??
Merci
j'ai un fichier .txt dont je ne connait pas le nom (appelons ADRESSE.txt ici)
j'ai le code suivant inscrit dans le fichier adresse.awk
#$ nl adress_coordonnee1.awk { for fich in *.txt; do sed "s/address /'/g" adress2_${fich%.*}.txt > adress1_${fich%.*}.txt sed "s/rue/'/g" adress1_${fich%.*}1.txt > adress2_${fich%.*}.txt #permet de vider la table avant de la remplir echo 'echo "truncate table "adresse_'${fich%.*}'" ;" | mysql fournisseur ' > ADRESSE_FINAL_${fich%.*}.sql #affiche "insert into ..." dans un fichier nommé adress_text.csv echo 'echo "insert into adresse_'${fich%.*}' (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_${fich%.*}.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_${fich%.*}.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_${fich%.*}.txt rm adress2_${fich%.*}.txt rm adress1_${fich%.*}.txt rm adress_text.csv rm adress1_text.csv rm adress2_text.csv rm adress3_text.csv done }
Lorsque je fais un crontab, il me sort un fichier portant le nom: ADRESSE_FINAL_*.sql au lieu de ADRESSE_FINAL_ADRESSE.sql dans le répertoire root
Mais lorsque je l'exécute via le terminal:
cd /home/test/nico
# ./adresse.awk
j'ai un fichier nommer ADRESSE_FINAL_ADRESSE.sql qui apparait dans mon répertoire test
Comment faire pour exécuter le fichier adresse.awk pour qu'il me sorte un fichier ADRESSE_FINAL_ADRESSE.sql avec un crontab ??
Merci
A voir également:
- Probleme passage d'argument
- Passage qwerty azerty - Guide
- Test passage windows 11 - Guide
- Passage à windows 11 gratuit - Guide
- Passage windows 7 à 10 - Accueil - Mise à jour
- Choisir passage sonnerie samsung - Guide
3 réponses
Si ${fich%.*} (syntaxe que je ne connais pas, je veux bien que tu me dises ce que c'est sensé faire) contient à un endroit de ton script la valeur que tu souhaites, pourquoi ne pas simplement la stocker dans une variable et utiliser dans chacune de tes instructions cette variables ?
Bonne chance
Bonne chance
Salut,
En faite la syntaxe ${fich%.*} me passe le nom ADRESSE dans le fichier .awk pour me sortir -quand sa marche- un fichier ADRESSE_FINAL_ADRESSE.sql.
En faite la syntaxe ${fich%.*} me passe le nom ADRESSE dans le fichier .awk pour me sortir -quand sa marche- un fichier ADRESSE_FINAL_ADRESSE.sql.