OVH Cloud OVH Cloud

shitf ne N element sur une liste en KSH

1 réponse
Avatar
at.choum
Bonjour,
j'ai une liste de valeur a traiter 3 par 3. Je voudrais traiter dans
un premier temps "A a 1" puis "B b 2" puis "C c 3" le plus simplement
possible

exemple de ce que je voudrait faire (en shell tres libre)
l="A a 1 B b 2 C c 3"
fo i in `echo $l`
do
echo $i $i+1 $i+2;
shift ($l); shift ($l);
done

on aurai
A a 1
B b 1
C c 3

Il faut que cela soit du sh ou du ksh (en perl je sais faire, en
appelant un autre script qui fait le shift je sais faire aussi mais
cela est deja trop compliqué)
Si vous avez une idee pour faire un shitf ne N element sur une liste
en SH

merci A+

1 réponse

Avatar
David LE BOURGEOIS
Bonjour,


Bonjour.

j'ai une liste de valeur a traiter 3 par 3. Je voudrais traiter dans
un premier temps "A a 1" puis "B b 2" puis "C c 3" le plus simplement
possible

exemple de ce que je voudrait faire (en shell tres libre)
l="A a 1 B b 2 C c 3"
fo i in `echo $l`
do
echo $i $i+1 $i+2;
shift ($l); shift ($l);
done

on aurai
A a 1
B b 1
C c 3


echo $l |
sed 's/([^[:blank:]]*) ([^[:blank:]]*) ([^[:blank:]]*) /1 2 3
/'

J'ai tester, ça fonctionne. Mais, n'étant pas un expert en sed, il doit
surement exister mieux.

--
David LE BOURGEOIS