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