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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.
Partager