OVH Cloud OVH Cloud

scripts pour debutants

8 réponses
Avatar
yannick.deglin
bonjour, merci a ceux qui m'ont déjà aider sur ce forum ...


voila ;. j'ai 2 /3 choses a faire .. et je n'y arrive pas .. laors que
ce sont des choses tres simples ... ca fait une semaine que je viens
de decouvrir unix / shell et j'ai du mal , j'avoue ...

ma config : solaris / ksh

voici mes differentes requete

1/ recuperer le nom des fichiers contenu dans un repertoire pour
pouvoir les traiter dans une boucle

par exemple , un repertoir /data/In contient une dizaine de fichiers ,
il me faut recuperer le nom de chaque fichier pour les traiter un à
un....

2/ recuperer une variable dans un fichier texte

imaginons que j'ai un fichier texte de 10 ligne ..
chaque ligne est composée de deux données separé par un ";"

sample du fichier texte

toto;script_01.sh
tata;script_02.sh
titi;script_03.sh


donc vous l'aurez compris .. je vais recuperer la premiere variable
et je veux recuperer le script correspondant ..



donc je renumere ....

dans le repertoire Data/in
il y aura des fichiers ... je veux les prendre un a un et les traiter
...

par exemple , le fichier toto_2004_10_12.txt .. recuperer toto et
aller chercher dans mon fichier texte la valeur script_01.sh a
executer



merci beaucoup de perdre votre temps avec moi .... ;-)

8 réponses

Avatar
Rakotomandimby (R12y) Mihamina
( Fri, 10 Dec 2004 08:26:05 -0800 ) sleepee :
ma config : solaris / ksh


Un shell que je ne connait pas, mais que je suppose qui est convenable.
Mais commence donc par ici : http://lea-linux.org/dev/shell_script.html

1/ recuperer le nom des fichiers contenu dans un repertoire pour
pouvoir les traiter dans une boucle


#!/bin/ksh
cd /data/In
for FICHIER in * ;do
traitement $FICHER
done

2/ recuperer une variable dans un fichier texte
toto;script_01.sh


Avec awk :
On definit d'abord quel sera le delimiteur de champs (field separator):
ensuite on dit qu'a chaque ligne on prend le premier champ.

[...]
awk BEGIN {FS=";"} {print $1} < ton_fichier.txt

Voila.
--
ASPO Infogérance - http://aspo.rktmb.org/activites/infogerance
Unofficial FAQ fcolc - http://faq.fcolc.eu.org/
Linux User Group sur Orléans et alentours.
Tél: + 33 2 38 76 43 65 (France)

Avatar
gregg
Rakotomandimby (R12y) Mihamina wrote:

Avec awk :
On definit d'abord quel sera le delimiteur de champs (field separator):
ensuite on dit qu'a chaque ligne on prend le premier champ.

[...]
awk BEGIN {FS=";"} {print $1} < ton_fichier.txt


Qu'est-ce qui ne va pas avec:

cut -d ";" -f 1

par rapport à awk ?

gregg

Avatar
Rakotomandimby (R12y) Mihamina
( Fri, 10 Dec 2004 20:18:06 +0100 ) gregg :
Qu'est-ce qui ne va pas avec:
cut -d ";" -f 1


Tout va bien.
Seulement que cut est plus limité que awk.
Si le debutant apprend avec 'cut', quand viendront les choses plus
compliqué il devra apprndre 'awk' en plus.

En realité on devrait directement lui faire faire ca en Perl, comme ca il
aurait le VRAI outil de manipulation... disons que awk est un juste milieu.

par rapport à awk ?


J'aurais bien pu lui donner le truc avec 'cut'.
Le truc c'est que comme il m'a demandé mon avis, je l'ai donné. C'est
pas forcément que 'cut' ne va pas.
awk est plus puissant. un point c'est tout.

A mes debuts, j'etais pro 'cut'...
--
ASPO Infogérance - http://aspo.rktmb.org/activites/infogerance
Unofficial FAQ fcolc - http://faq.fcolc.eu.org/
Linux User Group sur Orléans et alentours.
Tél: + 33 2 38 76 43 65 (France)

Avatar
Arnaud Launay
Le Fri, 10 Dec 2004 21:37:08 +0100, Rakotomandimby (R12y) Mihamina écrivit:
cut -d ";" -f 1
awk est plus puissant. un point c'est tout.

A mes debuts, j'etais pro 'cut'...


Et dans le cas présent, utiliser awk, c'est du bloat.

Arnaud.
--
http://launay.org/blog/
http://www.cusae.com/


Avatar
Rakotomandimby (R12y) Mihamina
( Sat, 11 Dec 2004 12:11:23 +0000 ) Arnaud Launay :
Et dans le cas présent, utiliser awk, c'est du bloat.


_Oui_ , mais a mon avis, le posteur initial ne va pas s'arreter a ca... Il
est coutume de commencer par des choses simples.

C'est de toutes facons logique de presenter un exemple tres simple quand
on demande de l'aide. Il va pas venir avec son gros morceau de code et
demander pourquoi ca ne marche pas. Il va plutot tenter de le decomposer
et voir par morceau etc etc ...
--
ASPO Infogérance - http://aspo.rktmb.org/activites/infogerance
Unofficial FAQ fcolc - http://faq.fcolc.eu.org/
Linux User Group sur Orléans et alentours.
Tél: + 33 2 38 76 43 65 (France)

Avatar
DominiX
ici même:Rakotomandimby (R12y) Mihamina a
écrit
( Fri, 10 Dec 2004 20:18:06 +0100 ) gregg :
Qu'est-ce qui ne va pas avec:
cut -d ";" -f 1


Tout va bien.
Seulement que cut est plus limité que awk.
Si le debutant apprend avec 'cut', quand viendront les choses plus
compliqué il devra apprndre 'awk' en plus.

En realité on devrait directement lui faire faire ca en Perl, comme
ca il aurait le VRAI outil de manipulation... disons que awk est un
juste milieu.



je suis bien de ton avis, ca doit etre une loi unixienne
je suis aussi passé par cut puis awk ...
... et aujourd'hui je fait tout en perl.
mais il faut de l'experience pour comprendre ça.

-- dominix


Avatar
Thierry Boudet
On 2004-12-11, Arnaud Launay wrote:

Et dans le cas présent, utiliser awk, c'est du bloat.

Ouiménon. Pour ce genre de trucs, awk est un _bon_ départ.



--
_/°< coawk

Avatar
Arnaud Launay
Le Sun, 12 Dec 2004 12:35:26 +0000 (UTC), Thierry Boudet écrivit:
Et dans le cas présent, utiliser awk, c'est du bloat.
Ouiménon. Pour ce genre de trucs, awk est un _bon_ départ.



Dans 90% des cas, awk, c'est du bloat.

Arnaud.
--
http://launay.org/blog/
http://www.cusae.com/