Remplacement avec commande sed ?

mortelrdv -  
jipicy Messages postés 41342 Statut Modérateur -
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
A voir également:

2 réponses

lami20j Messages postés 21644 Statut Modérateur, Contributeur sécurité 3 570
 
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
jipicy Messages postés 41342 Statut Modérateur 4 896
 
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