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 10 à 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.