[shell]Lecture fichier caractère par caractèr

Résolu
tibofx Messages postés 14 Statut Membre -  
dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
J'ai l'impression de poser une question qui a déjà du etre posée plein de fois, mais je ne trouve pas de solution sur les différents forums...
Voilà le problème :
A l'aide de awk, je cherche a lire un fichier ligne par ligne, et tester chaque caractère de cette ligne. Pour cela, en déclarant une variable r=1,
Voici le début du script :
while read line; do
r=1
tmp=$(echo $line | awk '{print substr($0,$r,1)}')
while test[ $tmp != "\n" ]; do ...
...
et j'incrémente plus tard r++...

mais il semble que la variable r ne soit pas attribuée, donc pas de $tmp,etc..

Quelqu'un aurait-il une idée pour ce problème qui m'a l'air tout débile ??
Merci !
Configuration: Linux
Firefox 2.0.0.11

4 réponses

  1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    hello
    et comme ça : tmp=$(echo $line | awk '{print substr($0,r,1)}' r=$r)
    ou
    tmp=$(echo $line | awk '{print substr($0,'"$r"',1)}'


    ' guillemet $r guillemet '
    1
  2. tibofx
     
    Ah merci beaucoup ! C'était bien ça le souci !
    0
  3. olivier
     
    c'est pas plus simple de faire un truc du genre ? :

    cat fichier | while read line
    do

    # code pour tester les caractères (avec awk je pense) sur la variable $line

    done
    0
  4. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    parce que le cat fichier | while read line est fait par le awk
    0