Remplacement avec commande sed ?

Bonjour,

j'ai un fichier contenant par exemple ZZZZZZ et je voudrais le remplacer par 25x la lettre A (donc AAAAAAA..).

il est possible de faire ça avec sed :
sed -i -e 's/ZZZZZZ/AAA....AAA/' toto

est il possible de faire ça sans etre obligé de taper 25x la lettre A ? (sans etre obliger de passer par script avec des boucle).

genre : sed -i -e 's/ZZZZZZ/25xA/' toto

ou par une autre méthode !!

Merci
Configuration: Windows XP
Firefox 2.0.0.16

2 réponses

  1. Modérateur
    Salut,

    en attendant la solution sed ;-)
    lami20j@debian:~/trash$ cat zzzzzz.txt
    ZZZZZZ
    lami20j@debian:~/trash$ wc -c zzzzzz.txt
    7 zzzzzz.txt
    lami20j@debian:~/trash$ perl -pi.orig -e 's/Z{6}/"A" x 25/e' zzzzzz.txt
    lami20j@debian:~/trash$ cat zzzzzz.txt
    AAAAAAAAAAAAAAAAAAAAAAAAA
    lami20j@debian:~/trash$ wc -c zzzzzz.txt
    26 zzzzzz.txt
    lami20j@debian:~/trash$
    
    Le caractère de saute de ligne est compté c'est pour ça que tu as 7 (en fait Z c'est 6 fois)
    pareil pour A, tu as 25 + le saute de ligne = 26
    0
    1. Modérateur
      Salut,

      Pas mieux ;-(

      La solution avec "sed" est plus lourde et moins élégante :
      [tmpfs]$ cat mortelrdv
      Bonjour,
      
      j'ai un fichier contenant par exemple
      ZZZZZZ
      et je voudrais le remplacer par 25x la lettre A (donc AAAAAAA..).
      
      il est possible de faire ça avec sed :
      sed -i -e 's/ZZZZZZ/AAA....AAA/' toto
      
      est il possible de faire ça sans etre obligé de taper 25x la lettre A ?
      (sans etre obliger de passer par script avec des boucle).
      
      genre : sed -i -e 's/ZZZZZZ/25xA/' toto
      
      ou par une autre méthode !!
      
      [tmpfs]$ sed -e 's/Z\{6\}/A/; :b; s/A/&&/;/A\{25\}/! tb;' mortelrdv
      Bonjour,
      
      j'ai un fichier contenant par exemple
      AAAAAAAAAAAAAAAAAAAAAAAAA
      et je voudrais le remplacer par 25x la lettre AAAAAAAAAAAAAAAAAAAAAAAAA (donc AAAAAAA..).
      
      il est possible de faire ça avec sed :
      sed -i -e 's/AAAAAAAAAAAAAAAAAAAAAAAAA/AAA....AAA/' toto
      
      est il possible de faire ça sans etre obligé de taper 25x la lettre AAAAAAAAAAAAAAAAAAAAAAAAA ?
      (sans etre obliger de passer par script avec des boucle).
      
      genre : sed -i -e 's/AAAAAAAAAAAAAAAAAAAAAAAAA/25xA/' toto
      
      ou par une autre méthode !!
      [tmpfs]$
      Mais bon, elle marche aussi ;-))
      0