Script shell : lecture fichier .txt
Résolu/Fermé
A voir également:
- Xxxxxxxxxxxxxe
- Script vidéo youtube - Guide
- Classic shell windows 11 - Télécharger - Personnalisation
- Ghost script - Télécharger - Polices de caractères
- Script bat - Guide
- Microsoft activation script - Accueil - Windows
3 réponses
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
12 mars 2010 à 10:54
12 mars 2010 à 10:54
Salut,
Il n'y a rien d'autre à faire ensuite ?
Dans ce cas un simple :
;-))
Il n'y a rien d'autre à faire ensuite ?
Dans ce cas un simple :
jp@MDK:~/tmpfs ssh$ cat plop 1 NOTYET x.xxxxxxxxxxxxxe+xxx x.xxxxxxxxxxxxxe+xxx x.xxxxxxxxxxxxxe+xxx x.xxxxxxxxxxxxxe+xxx 2 NOTYET x.xxxxxxxxxxxxxe+xxx x.xxxxxxxxxxxxxe+xxx x.xxxxxxxxxxxxxe+xxx x.xxxxxxxxxxxxxe+xxx 3 NOTYET x.xxxxxxxxxxxxxe+xxx x.xxxxxxxxxxxxxe+xxx x.xxxxxxxxxxxxxe+xxx x.xxxxxxxxxxxxxe+xxx jp@MDK:~/tmpfs ssh$ awk '{ print $3,$4,$5,$6 }' plop x.xxxxxxxxxxxxxe+xxx x.xxxxxxxxxxxxxe+xxx x.xxxxxxxxxxxxxe+xxx x.xxxxxxxxxxxxxe+xxx x.xxxxxxxxxxxxxe+xxx x.xxxxxxxxxxxxxe+xxx x.xxxxxxxxxxxxxe+xxx x.xxxxxxxxxxxxxe+xxx x.xxxxxxxxxxxxxe+xxx x.xxxxxxxxxxxxxe+xxx x.xxxxxxxxxxxxxe+xxx x.xxxxxxxxxxxxxe+xxx jp@MDK:~/tmpfs ssh$
;-))
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
12 mars 2010 à 19:47
12 mars 2010 à 19:47
je pense qu'avec ces 2réponses je devrais déjà arriver à quelque chose, reste à savoir comment ouvrir mon fichier... :-)
Ben normalement l'exemple de boucle donné plus haut (while read... done < fichier) le fait.
Après un "cat fichier" le fait aussi, suffit ensuite de le passer au travers d'un "pipe" et de traiter le flux :
Par exemple...
Ben normalement l'exemple de boucle donné plus haut (while read... done < fichier) le fait.
Après un "cat fichier" le fait aussi, suffit ensuite de le passer au travers d'un "pipe" et de traiter le flux :
cat fichier | awk '{print $3}'
Par exemple...
12 mars 2010 à 11:16
par contre je ne comprends pas tout ce que tu écris... :-)
cat plop : c'est pour trouver mon fichier ascii plop?
awk '{ print $3,$4,$5,$6 }' plop : il repère les différentes colonnes mais pour travailler ligne par ligne comment faire? chaque ligne correspond à un set de paramètres pour lancer une expérience, il faudrait donc créer une boucle parcourant les lignes, pour une ligne identifier la valeur de chaque paramètre (pour ça j'imagine qu'en faisant parametre1 = awk'{print$3}' fichier parametre2 = awk'{print$4}' fichier ... ca devrait aller(?)) une fois que ces paramètres sont identifiés, lancer l'expérience puis passer à la ligne suivante.
12 mars 2010 à 11:38
Pour répondre à tes questions :
cat plop : c'est pour trouver mon fichier ascii plop?
Non, en fait dans mon exemple c'était pour te montrer ce que contenant le fichier "plop". La commande "cat" affiche le contenu d'un fichier.
Pour lire un fichier ligne par ligne (par exemple) :
Mais bon si tu dois lancer un traitement sur chaque paramètre, autant le faire de suite plutôt que de stocker chaque paramètre dans une variable...
12 mars 2010 à 12:17
alors calmement :
je dois lancer des simu pour différents sets de paramètre. le script ne sert qu'à lancer les simu (elles se font sur un programme extérieur) et à changer la valeur de ces paramètres. j'ai donc un fichier propre au programme de simulation dans lequel je viens modifier la valeur des paramètres d'expérience grâce au script (le fichier input.dat est celui utilisé pour la simulation, le fichier input.dat.template sert à modifier la valeur des paramètres). avant j'introduisais manuellement la valeur des paramètres dans le script mais maintenant ces paramètres sont imposés et leurs valeurs se trouvent dans un fichier "Parameters.in" ascii dont la structure est celle décrite au début du sujet.
je pense qu'avec ces 2réponses je devrais déjà arriver à quelque chose, reste à savoir comment ouvrir mon fichier... :-)
pour info je mets mon script d'avant celui où je choisissais mes valeurs de paramètres (ce n'est pas la même notation (scientifique 14chiffres pour les paramètres) que celle du fichier "Parameters.in" mais cela ne change rien...).
echo 'starting'
export NOCOUNTER=1
for param1 in 0.02 0.05 0.08 0.2
do
for param2 in 0.01 0.02 0.04
do
for param3 in 0 5 10 15 20
do
for param4 in 0 0.1 0.2 0.3
do
cp input.dat.template input.dat
~/bin/replace MESH $param1 INC $param2 NUM $param3 X $param4 -- input.dat
~/lancement du programme de simulation
done
done
done
done
echo 'finished'