Boucle dans un shell pour creation de fichiers - Linux et OS Alternatifs
Marsh Posté le 18-03-2002 à 22:43:25
jultey a écrit a écrit : J'ai vu un jour un de mes prof qui a fait une boucle dans un shell sous Linux.... pour créer plusieurs fichiers en même temps... Quelque chose du style : for(i=0, i<=10, i++){touch fichier.i} Quelqu'un pourrait me donner la syntaxe exacte svp ? |
for i in 0..10
do
touch fichier.i
done
ou un truc dans le style
Marsh Posté le 18-03-2002 à 23:01:59
Ca a l'air d'etre pas loin de la bonne solution.... En tout cas, j'ai plus le message d'erreur de tout a l'heure et ca créer un fichier nommé fichier.i
Je tatonne pour trouver la syntaxe... j'en suis pas loin, je le sens !!!
Marsh Posté le 18-03-2002 à 23:03:07
Ca a l'air d'etre pas loin de la bonne solution.... En tout cas, j'ai plus le message d'erreur de tout a l'heure et ca créer un fichier nommé fichier.i
Je tatonne pour trouver la syntaxe... j'en suis pas loin, je le sens !!!
Marsh Posté le 18-03-2002 à 23:04:20
petite correction mais c'est pas encore ça quand même :
for i in 0..10
do
touch fichier.$i
done
[jfdsdjhfuetppo]--Message édité par tatanka--[/jfdsdjhfuetppo]
Marsh Posté le 18-03-2002 à 23:07:01
sinon, tu peux faire ça, mais c'est chiant , et y-a surement un autre moyen :
for i in 0 1 2 3 4 5 6 7 8 9 10
do
touch fichier.$i
done
[jfdsdjhfuetppo]--Message édité par tatanka--[/jfdsdjhfuetppo]
Marsh Posté le 19-03-2002 à 11:36:24
je confim il faut mettre $i
Marsh Posté le 19-03-2002 à 11:44:19
ya pas vraiment plus simple
Il faudrait utiliser expr mais on aurait plus de caractères
ou $(()) et (()) avec le bash ou zsh.
ça serait plus joli en perl.
Marsh Posté le 19-03-2002 à 12:56:32
ArSuniK a écrit a écrit : ya pas vraiment plus simple Il faudrait utiliser expr mais on aurait plus de caractères ou $(()) et (()) avec le bash ou zsh. ça serait plus joli en perl. |
et en awk, y-a moyen de faire un rtuc plus simple aussi, non ?
Marsh Posté le 19-03-2002 à 13:44:11
hmmm je sais pas kel est la solution avec le moins de cara
awk 'BEGIN{for(i=0;i<10;i++)printf"">i}'
c ptet en awk oui
Marsh Posté le 19-03-2002 à 14:01:36
for i in `seq 1 10`; do touch $i;done
seq est sympa pour ça
Marsh Posté le 19-03-2002 à 14:18:25
the_fireball a écrit a écrit : for i in `seq 1 10`; do touch $i;done seq est sympa pour ça |
Arf, j'avais complément oublié seq
on peut encore améliorer :
for i in `seq 1 10`;do :>$i;done
seq 1 10|awk '{printf "">$1}'
Marsh Posté le 19-03-2002 à 14:41:24
"seq", c'est quoi ? ça sert juste à aller d'un nombre à un autre?
Pareil pour "awk", je connais pas...
Je crois que les solutions que vous proposez deviennent trop complexes pour moi !!!
Marsh Posté le 19-03-2002 à 14:46:37
jultey a écrit a écrit : "seq", c'est quoi ? ça sert juste à aller d'un nombre à un autre? Pareil pour "awk", je connais pas... Je crois que les solutions que vous proposez deviennent trop complexes pour moi !!! |
seq a priori, c'est pour faire une sequance de nombre compris entre les deux borne que tu spécifie apres (t'as "man seq" qui devrait pouvoir t'expliquer ça)
sinon, les ` permettent d'obtenir le resultat de "seq 1 10", si tu les avait pas mis, il t'aurait sortie un tru du style :
fichier.seq fichier.1 et fichier.10
retiens la soluce de the_firewall, elle est simple et elle marche tres bien
[jfdsdjhfuetppo]--Message édité par tatanka--[/jfdsdjhfuetppo]
Marsh Posté le 19-03-2002 à 14:52:13
tatanka a écrit a écrit : seq a priori, c'est pour faire une sequance de nombre compris entre les deux borne que tu spécifie apres (t'as "man seq" qui devrait pouvoir t'expliquer ça) sinon, les ` permettent d'obtenir le resultat de "seq 1 10", si tu les avait pas mis, il t'aurait sortie un tru du style : fichier.seq fichier.1 et fichier.10 retiens la soluce de the_firewall, elle est simple et elle marche tres bien |
Merci pour les explications car j'avais pas trop le temps de les faire et merci pour le nouveau surnom
Marsh Posté le 19-03-2002 à 14:53:42
the_fireball a écrit a écrit : Merci pour les explications car j'avais pas trop le temps de les faire et merci pour le nouveau surnom |
the_netfiler ?
Marsh Posté le 19-03-2002 à 14:54:53
the_fireball a écrit a écrit : Merci pour les explications car j'avais pas trop le temps de les faire et merci pour le nouveau surnom |
arf !
sorry
Marsh Posté le 19-03-2002 à 14:57:07
ya pas de mal, chui pas susceptible
et miniplus, il peut parler tiens
Marsh Posté le 19-03-2002 à 15:00:02
the_fireball a écrit a écrit : ya pas de mal, chui pas susceptible et miniplus, il peut parler tiens |
the_iptable ?
Marsh Posté le 19-03-2002 à 15:01:56
Mon admin reseau m'a dit qu'on pouvait creer un fichier avec :
#!/usr/bin/python
for i in range(100):
print "touch fichier", i
Et ensuite appelé le fichier.
Merci pour toutes vos réponses je les essayrais ce soir chez moi ...
Marsh Posté le 19-03-2002 à 15:07:32
-+ => the_ipchains, ça fait plus style avec le mot chains
Il doit y avoir un tas de possibilité, avec python, perl, C et autre, mais bon, après faut avoir les softs pour. Touch et seq font partie des outils GNU que l'on trouve partout, alors que python ou autre par forcèment...
Marsh Posté le 19-03-2002 à 17:05:44
Huhu marrant ca seq je connaissais pas...
On peut feinter:
touch fichier.`seq -s " fichier." 1 10`
[jfdsdjhfuetppo]--Message édité par pipomolo--[/jfdsdjhfuetppo]
Marsh Posté le 18-03-2002 à 22:40:59
J'ai vu un jour un de mes prof qui a fait une boucle dans un shell sous Linux.... pour créer plusieurs fichiers en même temps...
Quelque chose du style :
for(i=0, i<=10, i++){touch fichier.i}
Quelqu'un pourrait me donner la syntaxe exacte svp ?