Boucle FOR script shell
Résolu
snow_frog
Messages postés
216
Date d'inscription
Statut
Membre
Dernière intervention
-
snow_frog Messages postés 216 Date d'inscription Statut Membre Dernière intervention -
snow_frog Messages postés 216 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
voilà le départ d'un sript, qui utilise des boucle FOR afin de trouver des fichiers précis dns chaque sous repertoires et par la suite effectuer une opération avec le cotenu de chaque fichiers.
Ce que je souhaite faire, c'est différencier la variable i en fonction du nom du fichier traité:
par exemple, si le fichier est contient "station_1" il faut l'affecter à la variable i, si il contient "station_2" il faut l'affecter à la variable j:
en gros:
<code>
#!/bin/bash
exec 2>/dev/null
DATA="*releve_niveau.txt"
STAT1="*station_1"
STAT2="*station_2"
for DIR in `find -type d`; do
for FILE in $DIR/$DATA ; do
for i in $FILE ; do
if $i contient $STAT1 then mes_commandes_1
fi
if $i contient $STAT2 then mes_commandes_2
fi
done
done
done<
/code>
ceci me permettrait de remplir un tableau html avec dans une colonne les resultats de la station 1 et dans la colonne d'a cote les resultat de la station 2.
merci de votre aide
voilà le départ d'un sript, qui utilise des boucle FOR afin de trouver des fichiers précis dns chaque sous repertoires et par la suite effectuer une opération avec le cotenu de chaque fichiers.
#!/bin/bash exec 2>/dev/null DATA="*releve_niveau.txt" for DIR in `find -type d`; do for FILE in $DIR/$DATA ; do for i in $FILE ; do echo "$DIR ==> $i" done done done< /code> avec une syntaxe comme celle là, je récupère: <code> . ==> ./*releve_niveau.txt ./test ==> ./test/sau49400_station_1_releve_niveau.txt ./test ==> ./test/sau49400_station_2_releve_niveau.txt
Ce que je souhaite faire, c'est différencier la variable i en fonction du nom du fichier traité:
par exemple, si le fichier est contient "station_1" il faut l'affecter à la variable i, si il contient "station_2" il faut l'affecter à la variable j:
en gros:
<code>
#!/bin/bash
exec 2>/dev/null
DATA="*releve_niveau.txt"
STAT1="*station_1"
STAT2="*station_2"
for DIR in `find -type d`; do
for FILE in $DIR/$DATA ; do
for i in $FILE ; do
if $i contient $STAT1 then mes_commandes_1
fi
if $i contient $STAT2 then mes_commandes_2
fi
done
done
done<
/code>
ceci me permettrait de remplir un tableau html avec dans une colonne les resultats de la station 1 et dans la colonne d'a cote les resultat de la station 2.
merci de votre aide
A voir également:
- Boucle FOR script shell
- Downloader for pc - Télécharger - Téléchargement & Transfert
- Classic shell - Télécharger - Personnalisation
- Script vidéo youtube - Guide
- Mas script - Accueil - Windows
- Idm for mac - Télécharger - Téléchargement & Transfert
4 réponses
jp@MDK:~/tmpfs ssh$ var="./test/sau49400_station_1_releve_niveau.txt" jp@MDK:~/tmpfs ssh$ echo ${var} ./test/sau49400_station_1_releve_niveau.txt jp@MDK:~/tmpfs ssh$ echo ${var##*/} sau49400_station_1_releve_niveau.txt jp@MDK:~/tmpfs ssh$man bash (section "Paramètres"), si pages de man en français :
man bash -P 'less -p "^ Remplacement des paramètres"';-))
merci pour ton aide,
voilà mon script maintenant:
le "probleme" que j'ai est que $i s'affiche avec l'arborescence:
./test/sau49400_station_1_releve_niveau.txt
comment peut on "supprimer" le nom des sous repertoire pour n'afficher que le nom du fichier?
pour obtenir: sau49400_station_1_releve_niveau.txt au lieu de ./test/sau49400_station_1_releve_niveau.txt
voilà mon script maintenant:
#!/bin/bash exec 2>/dev/null DATA="*releve_niveau.txt" STAT1="*station_1*" STAT2="*station_2*" for DIR in `find -type d`; do for FILE in $DIR/$DATA ; do for i in $FILE ; do case $i in $STAT1) echo "pour $i la station concernée est centre ville" ;; $STAT_2) echo "pour $i la station concernée est pont de chemin de fer" ;; esac
le "probleme" que j'ai est que $i s'affiche avec l'arborescence:
./test/sau49400_station_1_releve_niveau.txt
comment peut on "supprimer" le nom des sous repertoire pour n'afficher que le nom du fichier?
pour obtenir: sau49400_station_1_releve_niveau.txt au lieu de ./test/sau49400_station_1_releve_niveau.txt