#1 Le 30/04/2010, à 11:44
- R2_D2
améliorer script qui formatte un fichier en X lignes de X caractere
Bonjour à tous
Je débute dans la conception de scripts, mon script n'est donc pas optimisé et je pense qu'on peut beaucoup mieux faire, j'aimerai des suggestions à ce niveau.
Le besoin est de formater un fichier "source" de X caractères non mis en forme (voir une liste de fichiers) en lignes de 120 caractères.
Nb : je n'ai pas encore implémenter la gestion d'erreurs ou encore le fait de traiter plusieurs fichiers, mais je vais m'y atteler.
Merci a tous pour vos idées et remarques !
#!/bin/bash
SOURCE="test.txt"
DEST="$SOURCE.new"
LONGLIGNE=120 #Longueur de ligne
NBCAR=`wc -m $SOURCE | cut -d' ' -f-1` #compte le nombre de caracteres du fichier source
NBLIGNE=`expr $NBCAR / $LONGLIGNE` #divise nb de caracteres par nb lignes
NBLP=`expr $NBLIGNE + 1` #resultat division + 1 (reliquat si tombe pas juste)
i=1
j=1
k=$LONGLIGNE
echo "PARAM : Nb de car. par ligne : $LONGLIGNE " >> $DEST.log
echo "SOURCE : $SOURCE ... $NBCAR caracteres " >> $DEST.log
echo "DESTINATION : $DEST ... $NBLP lignes ( $NBCAR / $LONGLIGNE +1 (reliquat) ) " >> $DEST.log
echo "DEBUT DU TRAITEMENT" >> $DEST.log
while [ $i -le $NBLP ]
do
echo "Ligne $i de $NBLP - Car. $j - $k" >> $DEST.log
cat $SOURCE | cut -c$j-$k >> $DEST
i=$(($i+1))
j=$(($j+$LONGLIGNE))
k=$(($j+$LONGLIGNE))
done
echo "TRAITEMENT TERMINE" >> $DEST.log
exit 0
Hors ligne
#2 Le 30/04/2010, à 13:38
- credenhill
Re : améliorer script qui formatte un fichier en X lignes de X caractere
hello
pour couper inconditionnellement ou pas la longueur des lignes d'un fichier, il y a les commandes
fold -w 120
fmt -w 120
Hors ligne
#3 Le 30/04/2010, à 13:51
- R2_D2
Re : améliorer script qui formatte un fichier en X lignes de X caractere
merci bien je vais tenter ca , ca va pas mal raccourci mon code !
Hors ligne