Traiter un fichier en position fixe

Traiter un fichier en position fixe - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 12-07-2006 à 11:44:13    

Petite colle en script Unix:  
 
J'ai un fichier plat qui contient des données, mais sans séparateur (positions fixes).  
Je dois faire un traitement pour , si les données entre les positions 90 et 92 sont égales à 'bla' remplacer le 'bla' par un 'zub' par exemple.  
 
J'ai regardé un peu du côté de sed ou awk, mais je ne vois pas comment lui dire de travailler en position fixe.  
 
Quelqu'un sait ?  

Reply

Marsh Posté le 12-07-2006 à 11:44:13   

Reply

Marsh Posté le 12-07-2006 à 12:28:07    

Par position tu entand quoi ? avec seulement des espaces ?  
ou par n° de Xième caractere sur la ligne ?
 
donne stp un exemple de fichier (2/3 lignes) avec la chaine à tester et modifier...
 
mais avec vi par exmple tu peux postitioner copier un mot dans le buffer A positionner copier un autre mot dans le buffer B  
les comparer et intervenir si = par exemple  
 
vi -c "........................." fichier_a_analyeser
 
en cherchant dans awk/sed/vi tu es sur la bonne piste mais il faut maintenant mieux identifier ton besoin pour qu'on t'aide à trouver un code efficace pour ta demande.
 

vi -c "g/h/s/i/x/|:wq" fichier_test_de_i_to_x_if_h_on_same_line


 
remplace le premier i par un x dans les lignes ou un h est présent avant la position du i et ce quelque soit le nombre de caractere avant le h ou le i ou encore entre le h et le premier i.
 
tu peux faire pareil avec 3 mots :

vi -c "g/condition/s/mot_à_changer/mot_de_remplacement/|:wq" fichier_test_de_mot_to_autremot_if_condition_on_same_line


 
de même remplacera le mot à changer par le mot de remplacement que si le mot condition est present sur la ligne et ceux quelque soit leurs position respectives.


Message édité par francoispgp le 12-07-2006 à 12:38:25
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed