Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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 ! smile

Hors ligne