Création d'un fichier texte en Shell

Résolu/Fermé
daerkhil - Modifié par daerkhil le 11/05/2011 à 20:27
 daerkhil - 12 mai 2011 à 02:30
Bonjour,

J'aurais besoin de créer un fichier texte qui soit constitué de plusieurs centaines de lignes, avec à chaque fois le changement de 2 valeurs numériques.
Pour résumer une boucle qui fasse quelque chose comme

Pour(i=1;i<200;i++){

Ecrire : [Commande] val1 val2 val3*i val4+val5*i

}

Donc en fait je voudrais savoir comment réaliser cette itération, je sais à peu près créer le fichier, concaténer une chaine de caractère mais par contre je sais pas du tout comment "créer" la chaine de caractères voulue.

Voilà je suis vraiment mauvais en Shell je sais juste que ça existe. Merci d'avance !

A voir également:

2 réponses

Templier Nocturne Messages postés 7734 Date d'inscription jeudi 22 janvier 2009 Statut Membre Dernière intervention 21 mai 2016 1 103
11 mai 2011 à 20:34
avant tout, je tien à préciser que je ne connais pas shelle, et que je n'ai pas le temps de l'apprendre. cependant, ta façon de faire me semble un peu déplacée.

Shell gère les variables (ça je suis sûr)
j'imagine que shell gère la concaténation

du coup : il te faut un code de ce genre :


ta boucle
{
$valeur = $valeur + $supplement
}
echo -n $valeur >> fichier.txt


le + étant à remplacer par la concaténation correctement effectuée
0
Oui mais le but c'est de créer un fichier texte pour un programme très sensible à la casse, donc j'aimerais avoir une partie "fixe" et seulement une partie qui change...
0
Templier Nocturne Messages postés 7734 Date d'inscription jeudi 22 janvier 2009 Statut Membre Dernière intervention 21 mai 2016 1 103
11 mai 2011 à 20:51
ben oui...

je t'ecris ça en pseudo Shell, je te laisse le soin de restaurer la syntaxe qui va bien.

$valeur = ""
for(i=1;i<200;i++)
{
$supplement =  "[Commande]" .  $val1 . $val2 . $val3*$i . $val4+$val5*$i 
$valeur = $valeur + $supplement

}
echo -n $valeur >> fichier.txt 


les . servent de concaténation
0
Flachy Joe Messages postés 2103 Date d'inscription jeudi 16 septembre 2004 Statut Membre Dernière intervention 21 novembre 2023 260
11 mai 2011 à 23:01
@ Templier Nocturne : ça sent le PHP tout ça ;-)

@daerkhil
Voila quelque chose qui devrait te convenir :
#!/bin/bash

PN=$(basename $0)

#Vérifie la présence de l'argument : le fichier de sortie
if [ $# -ne 1 ]
then 
	echo "description"
	echo "Usage : $PN output_file"
	exit
fi

#Définition des variables
val1='valeur1'
val2='valeur2'
val3=3
val4=5
val5=7

echo "Fichier en cour d'écriture..."

# La boucle principale
for ((i=1; i<=200; i++))
do
    echo [Commande] $val1 $val2 $[$val3 + $i] $[$val4 + $val5 * $i] >>$1
done

echo "Terminé"
0
Templier Nocturne Messages postés 7734 Date d'inscription jeudi 22 janvier 2009 Statut Membre Dernière intervention 21 mai 2016 1 103
11 mai 2011 à 23:07
@ Templier Nocturne : ça sent le PHP tout ça ;-)

snif, grillé XD
0
Merci, j'ai réussi !
0