1

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 ?

2

perl -pe 'substr($_,90,3) =~ s/bla/zub/'


(ou bien perl -pe 's/^(.{90})bla/$1zub/' si tu veux juste une regexp)

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

3

EDITT: Boulet, je suis aller voir la définition de fichier platwink

4

au bout d'un petit temps de recherche sur google, j'ai trouvé la bonne option pour gawk:

gawk 'BEGIN { FIELDWIDTHS = "90 7 63" };{if ($2 == "9999999") {$2 = "0000000"} print $1 $2 $3 }'

5

(EDIT : PUTAIN DE BOOKELDOR T'ABUSES A USURPER MON COMPTE)
désolé.
Cinq font un et un font cinq : le tout est UNITE.
C'est dans l'incompréhension que je suscite que je trouve ma raison d'être.
Je suis moi, et je le suis parce que les autres ne le sont pas, et que ce sont eux qui forment ma personne.
Inconscience et déraison sont source d'imagination.
Au delà de ma conscience et de mon inconscient, mes rêves créent la réalité.