Forum Clubic

Debutant script shell

Bonjour

Je voudrais ecrire un scipt (un de mes tout premiers…) qui effectue une commande ayant comme parametre les lignes d’un fichiers “toto”

ex : dans toto ya :
1
2
3

et je voudrais faire une espece de
for i in …(je sais pas quoi/comment)
do
echo (je sais pas quoi/comment)
done

Merci de votre aide.

PS : si par hasard, vous auriez une bible du shell dispo (et comprehensible??) qquepart, chuis preneur

fichier=$1

Après tu joue avec cat et awks… pas drôle.

Si il s’agit de manipuler des fichiers, je te conseille de t’intéresser aux scripts perl ou python qui sont plus adaptés que le shell…

Pas une bible, mais un memo, qui te donnera quelques idées de ce qu’on peut faire avec le shell : http://ftp.spider-serv.net/memo-shell.pdf

en ai plein :smiley:

https://dpt-info.u-strasbg.fr/~mathis/LinuxCours/shell-bash.html
http://www.bsdbooks.net/shells/scripting/fr/index.html
http://www-gtr.iutv.univ-paris13.fr/Cours/Mat/Systeme/TDTP2003/tp03.html
http://abs.traduc.org/

Comme disait v_atekor : Utilise python c’est tellement plus simple pour débuter en scripting. (A mon avis, perl est moins facile d’accès)

[cpp]#!/bin/sh

cat fichier | while read i; do
echo $i
done[/cpp]

#!/bin/sh
for i in cat mon_fichier; do
echo $i
done

Pour la version simple :slight_smile:

ça va afficher les mots 1 par 1 et non pas les lignes :frowning: (c’était aussi ma première idée)

[cpp]

#!/usr/bin/python
import sys

nomFichier=sys.argv[0]

fichier=file(nomFichier,‘r’)

for line in fichier:
print line
[/cpp]

C’est un programme qui se lit lui même :stuck_out_tongue:
(Un bon départ pour un virus ;))

Le mec qui sait pas quoi faire. Note que c’est faisable aussi en Bash :stuck_out_tongue:

Dumbledore: oui, mais trop facile:

f=$0
cat $f

:wink:

non ça ne fait pas une lecture ligne par ligne, ce n’est donc pas ce qui est demandé

spider312 : oui, mais ça donne exactement le résultat ‘visuel’ du script que je propose juste avant (python)

super :sarcastic:

spider312: on n’est pas obligé d’être intelligent tout le temps (pauvre de moi sinon :stuck_out_tongue: )

ah si môsieur !

cat lit un fichier ligne par ligne !

hmmm mais bien sur et comment tu traites chaque ligne avec ce code ? genre ajouter [ au début et ] à la fin de chaque ligne ?

La version de jdloic permet de traiter le fichier ligne par ligne.

Une autre version très semblable:
[fixed]while read i
do
echo $i
done < fichier[/fixed]

Valoche

wouah, merci pour ces infos, et sympathique le debat engagé :slight_smile:
J’ai reussi a faire ce que je voulais, merci