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

Résolu/Fermé
tibofx Messages postés 14 Date d'inscription jeudi 3 janvier 2008 Statut Membre Dernière intervention 23 janvier 2008 - 21 janv. 2008 à 19:55
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 - 12 mars 2008 à 11:16
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 !
A voir également:

4 réponses

dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
22 janv. 2008 à 09:50
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
Ah merci beaucoup ! C'était bien ça le souci !
0
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
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
12 mars 2008 à 11:16
parce que le cat fichier | while read line est fait par le awk
0