Renommage de caractère dans un fichier texte

neonavy Messages postés 93 Date d'inscription   Statut Membre Dernière intervention   -  
lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   -
Bonjour,
J'aimerai transformer les 5 premiers séparateurs de champ (ce sont des espaces ou des tabulations que je voudrai transformer en piont-virgule) d'un journal de log.
Quelqu'un aurait-il un script à me proposer?
D'avance merci.

1 réponse

  1. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Salut,

    c'était mieux d'avoir quelque ligne de ton fichier.
    en conséquence j'ai créé un fichier bidon et voilà ce que ça donne
    le fichier original est sauvegardé avec l'extension .orig
    lami20j@debian:~$ cat vider.txt
    0       a   b           c                       d                       e555champs aaa bbba
    0       a  b    c               d                                       e555champs ccc
    0       a                       b c                     d                       e555champs kdsjf sdjkf ksdj
    0       a        b                      c                               d       e555champs
    0       a  b    c                       d                               e555champs aaa 111;ff
    lami20j@debian:~$ perl -pi.orig -e 's#(.*)#join ";",split /\s+/,$1,6#e' vider.txt
    lami20j@debian:~$ cat vider.txt
    0;a;b;c;d;e555champs aaa bbb
    0;a;b;c;d;e555champs ccc
    0;a;b;c;d;e555champs kdsjf sdjkf ksdj
    0;a;b;c;d;e555champs
    0;a;b;c;d;e555champs aaa 111;ff 
    et
    lami20j@debian:~$ cat vider.txt
    0       a   b           c                       d                       e555champs aaa bbb
    0       a  b    c               d                                       e555champs ccc
    0       a                       b c                     d                       e555champs kdsjf sdjkf ksdj
    0       a        b                      c                               d       e555champs
    0       a  b    c                       d                               e555champs aaa 111;ff
    lami20j@debian:~$ perl -pi.orig -e 's/(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(.*)/$1;$2;$3;$4;$5;$6/' vider.txt
    lami20j@debian:~$ cat vider.txt
    0;a;b;c;d;e555champs aaa bbb
    0;a;b;c;d;e555champs ccc
    0;a;b;c;d;e555champs kdsjf sdjkf ksdj
    0;a;b;c;d;e555champs
    0;a;b;c;d;e555champs aaa 111;ff
    
    lami20j
    0