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
=========================================

Répondre à