[Shell] Extraire caractère fichier dans table

liljerem Messages postés 4 Statut Membre -  
lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   -
Bonjour je souhaite insérer dans un tableau un fichier .txt ,mais caractère par caractère.
Tout cela en bourne shell.
J'avai essayé ça mais sa ne marche pas :
for ligne in $(cat 'fichier.txt')
do
j=0
for i in 0 1 2 3 4 5 6 7 8 9
do
c=${$ligne:$i:1}
tab[$j]=$c
j=$(($j+1))
i=$(($i+1))
done
done

2 réponses

  1. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Le tableau a la taille = le nombre de caractères, que tu peux l'obtenir avec la commande
    cat fichier | wc -c
    donc pour remplir le tableau tu peux utiliser
    for i in seq $(cat fichier | wc -c)
    --
    lami20j

    P.S. T'es obligé de faire ça en shell?
    C'est quoi l'objectif?
    0
  2. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,
    #! /bin/bash
    
    count=0
    
    for mot in $(cat fich.txt)
    do
    for lettre in $(echo $mot | sed -e 's/[\.,]//g' -e 's/./& /g')
    do
    tab[$count]="$lettre"
    count=$(expr $count + 1)
    done
    done
    La première expression de "sed" ('s/[\.,]//g') c'est pour enlever les signes de ponctuation (le point et la virgule).

    ;-))
    0
    1. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
       
      Salut,

      pour s'amuser un peu :-)
      #!/bin/bash
      perl -e '@tab=split//,`cat fich.txt`;grep{s/[,.]//}@tab';print"@tab"
      --
      lami20j

      P.S. Voilà maintenant c'est du shell :-DD et pas du perl
      0