Remplacement avec commande sed ?

mortelrdv -  
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   -
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. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    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
  2. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    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