Remplacement avec commande sed ?

Fermé
mortelrdv - 30 juil. 2008 à 19:51
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 30 juil. 2008 à 20:29
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 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
30 juil. 2008 à 20:05
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 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
30 juil. 2008 à 20:29
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