[Shell] Extraire caractère fichier dans table

liljerem Messages postés 4 Statut Membre -  
lami20j Messages postés 21644 Statut Modérateur, Contributeur sécurité -
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
A voir également:

2 réponses

lami20j Messages postés 21644 Statut Modérateur, Contributeur sécurité 3 570
 
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
jipicy Messages postés 41342 Statut Modérateur 4 896
 
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
lami20j Messages postés 21644 Statut Modérateur, Contributeur sécurité 3 570
 
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