Intégration de caractéres dans une ligne
Bonjour,
J'ai un fichier test1 , dans lequel je souhaite rajouter la même chaine de caractére pour chaque ligne " 001 TEST " pour créer mon fichier test2, à partir de mon 12 ième caractére de début de ligne , en rajoutant la chaine sur 20 caractères " 001 TEST " et intercaler la suite sur cette même.
fichier test1 :TOKAS180630 MACHINE A 00000
TOKAS180630 MACHINE A 00000
TOKAS180630 MACHINE B 0000044444
Fichier test 2:
TOKAS180630 001 TEST MACHINE A 00000
TOKAS180630 001 TEST MACHINE B 0000044444
Le fichier est assez volumineux. Il faudrait quelques chose de simple.
Dans un précedent script, j'avais rajouté des fins de lignes par des 0. (voir ci-dessous). Mais là je cale.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
#----------------------------------------------------------------------------------------
#--Rajout des caracteres 0 en fin de lignes pour combler les blancs sur 1500 caractere---
#----------------------------------------------------------------------------------------
cd ${RepOut}
echo "Chemin Out : ${RepOut}"
NbreMaxCar=1499
ls *MACHINE* 2>/dev/null | egrep -v "CRA" | while read UnFichier
do
cat ${UnFichier} | while IFS="" read UneLigne
do
if [ ${NbreMaxCar} -gt ${#UneLigne} ] ; then
printf "%s%0$((${NbreMaxCar}-${#UneLigne}))i\n" "$UneLigne" >> ${UnFichier}.tmp
else
echo "Erreur Ligne superieur a $NbreMaxCar caracteres"
printf "%s\n" "$UneLigne" >> ${UnFichier}.tmp
fi
done
mv ${UnFichier}.tmp ${UnFichier}
done |
Merci pour votre aide.