Regex

Résolu
tht123 Messages postés 72 Statut Membre -  
tht123 Messages postés 72 Statut Membre -
Hello,

Je me demande si avec les REGEX, il est possible afin de remplacer ou effacer du texte dans une ligne compris entre position n°6 jusque position 18 dans une ligne

Exemple:

Essai d'effacement avec les regex

Après traitement:

Essai avec les regex

Je pense utiliser sed :

soit :

s/REGEX//
ou
/regex/d

Suis-je dans le rêve ou est ce faisable??

Bonne nuit
Configuration: Windows XP
Internet Explorer 6.0

6 réponses

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

    $ echo "Essai d'effacement avec les regex" | sed  -r "s/d[\']\w+\s//"
    Essai avec les regex

    regarde ici sed substitution
    0
  2. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    $ echo "Essai d'effacement avec les regex" | sed  -r "s/(.{6}).{13}(.*)/\1\2/"
    Essai avec les regex

    0
  3. asevere Messages postés 13095 Date d'inscription   Statut Webmaster Dernière intervention   426
     
    Bonsoir,

    Comme l'a démontré lami, c'est possible avec sed, mais une autre solution plus direct existe...
    PBG4:~ adrien$ cat test
    Essai d'effacement avec les regex
    Essai d'effacement avec les regex
    Essai d'effacement avec les regex
    PBG4:~ adrien$ cat test |cut -c 1-5,19-
    Essai avec les regex
    Essai avec les regex
    Essai avec les regex
    
    Voir man cut.
    Le -c permet de spécifier que l'on va couper des caractères, ensuite, il ne reste plus qu'à lui dire quelle portion l'on souhaite afficher.
    du premier au 5 puis du 19 à la fin :)

    0
  4. tht123 Messages postés 72 Statut Membre
     
    Merci!!

    Tiens mais avec sed si je veux rediriger vers un autre fichier :

    sed -r "s/(.{6}).{13}(.*)/\1\2/" file1.txt>file2.txt

    avec cat comment peut on faire, de plus le | c'est une fonction logique??

    BAT
    0
    1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
       
      Salut,

      avec cat comment peut on faire
      Comme avec "sed" :
      cat fichier | cut -c ... > nouveau_fichier
      de plus le | c'est une fonction logique??
      Non, tu confonds avec "||" qui lui est une fonction logique (OU).

      ;-))
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

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

    j'ai pensé à cut mais tu as demandé regex :-))
    lami20j@debian:~$ echo "Essai d'effacement avec les regex" | cut -c1-5,19- > fichier
    lami20j@debian:~$ cat fichier
    Essai avec les regex
    

    de plus le | c'est une fonction logique?

    regarde ici guide d utilisation du shell pour debutant#xxx les redirections et les pipelines

    0
  7. tht123 Messages postés 72 Statut Membre
     
    hELLO.

    Merci et bravo pour le tuto!!!

    Bonne matinée!!

    BAV tous
    0