On Mon, 12 Feb 2007 17:50:38 +0100
Georges Lours <[EMAIL PROTECTED]> wrote:
tu veux lire le résultat d'une commande ligne par ligne? il faut utiliser
"while read" et non for
qui coupe mot par mot à moins de t'enquiquiner avec IFS.
grep <tes options> fichier | while read line; do qqchose avec "$line"; done
tu veux ensuite enlever un certain nombre de caractères au début et à la fin de
la ligne récupérée?
si c'est toujours le même nombre de caractères, c'est assez simple, exemple:
une variable var contenant toutes les lettres de l'alphabet. je veux enlever
les 10 1ers caractères
et les 2 derniers.
la construction ${var:x:y} va me permettre de lire y caractères de $var à
partir du caractère x+1.
donc je peux mettre 10 à la place de x
la variable ${#var} (note le #) donne le nombre de caractères de la variable
${var}.le nombre de caractères
que je veux lire après le 10ème est égal à la longueur de $var - les 10 1ers
caractères - les 2 que je veux
enlever à la fin, soit ${#var}-(10+2) à la place de y
je peux donc lancer ma substitution comme ceci (on peut aussi écrire plus
simplement ${#var}-12):
[EMAIL PROTECTED] ~]$ var=abcdefghijklmnopqrstuvwxyz; echo
${var:10:${#var}-(10+2)}
klmnopqrstuvwx
si la structure des lignes est plus complexe, que le nombre de caractère à
enlever diffère d'une ligne à
l'autre, etc, précise ta question en donnant plusieurs exemples de lignes
complètes
bye
jipe
=========================================
Vous souhaitez acquerir votre pack ou des services Mandriva?
Rendez-vous sur "http://store.mandriva.com".
Rejoignez le club Mandriva : http://club.mandriva.com
=========================================