[Shell] Modification de caracteres
Bonjour, voiçi une ligne d'un fichier :
Je voudrais placer un " f " au 22ième caractère. Je voudrais le faire automatiquement car c'est à appliquer à plusieur fichiers.
A la fin j'aimerais obtenir :
Quelqu'un à une idée ? peut-être avec sed mais je n'ai pas de caractère d'origine à remplacer puisque c'est un espace :(
Merçi d'avance.
2004/02/14 16:45:45.6 51.5263 16.1589 2.0 EMSC 00000165
Je voudrais placer un " f " au 22ième caractère. Je voudrais le faire automatiquement car c'est à appliquer à plusieur fichiers.
A la fin j'aimerais obtenir :
2004/02/14 16:45:45.6 f 51.5263 16.1589 2.0 EMSC 00000165
Quelqu'un à une idée ? peut-être avec sed mais je n'ai pas de caractère d'origine à remplacer puisque c'est un espace :(
Merçi d'avance.
Configuration: Windows XP Firefox 2.0.0.4
5 réponses
-
Salut,
Voici une piste avec awk (peut-être un peu barbare mais bon ...)
awk ' {Chaine1=substr($0,1,21) Chaine2=substr($0,23) print "Initial : "$0 print "Modifier : "Chaine1"f"Chaine2 print "\n"} ' fictest.txt
Bon courage
Gorki -
ModérateurSalut,
Essaie ça :jp@MDK:~/tmpfs ssh$ cat plop 2004/02/14 16:45:45.6 51.5263 16.1589 2.0 EMSC 00000165 jp@MDK:~/tmpfs ssh$ sed -r 's/(^.{21})(.*)/\1 f\2/' plop 2004/02/14 16:45:45.6 f 51.5263 16.1589 2.0 EMSC 00000165 jp@MDK:~/tmpfs ssh$;-))
-
-
Modérateur@lami20jSalut,
1 - Oui
2 - Parce que ça me plaît et que je suis pas une faignasse de Perlien môa ! NaméO ! ;-DDD
Bien vu ;-)
-
-
Merçi les gars d'avoir répondu aussi rapidement mais ça ne marche pas chez moi.
Si je met l'option -r j'ai le message : --r illegal option. Mauvaise version de sed ??!
j'ai essayé en mettant d'autre lettre mais j'ai le message command garbled.
Bon, je vais continuer dans cette voie en fouillant le man mais si vous avez une idée du problème n'hésitez pas à m'en faire part.
Merçi d'avance.
A plus :) -
ModérateurSupprime l'option "-r" et protège les accolades et les parenthèses avec des antislahs :
sed 's/^\(.\{21\}\)/\1 f/' plop;-))
-
HA HA ! Super ! Ca marche nickel chrome.
Merçi beaucoup Jipicy, j'y arrivais pas du tout.
Phil.