Bonjour,
Je voudrai écrire une chaîne de caractère toutes les 3 lignes de mon texte. Typiquement, je voudrai transformer un:
ligne1
ligne2
ligne3
ligne4
ligne5
ligne6
ligne7
en
--> ligne1
ligne2
ligne3
--> ligne4
ligne5
ligne6
--> ligne7
Je suis sur que ça doit pas être trop complexe, mais je suis pas très habitué de sed quand il s'agit pas de truc ultra simple
Merci!
# avec GNU Sed,
Posté par Jacques L'helgoualc'h (site web personnel) . Évalué à 10.
sed -e '1~3s/^/--> /'
devrait faire ce que tu demandes.
N.B. info sed est plus complet que la page de manuel, et pour les trucs dingues, voir http://sed.sf.net/.
[^] # Re: avec GNU Sed,
Posté par aerospeace . Évalué à 3.
# Avec awk
Posté par malin . Évalué à 5.
awk '{if (NR%3==0) {print "->", $0} else print}'
Bien moins élégant que la solution sed ci-dessus, mais peut servir comme base pour des variations autour de ce thème.
[^] # Re: Avec awk
Posté par Jacques L'helgoualc'h (site web personnel) . Évalué à 2.
Ici, un Sed non-Gnu peut le faire aussi sans calcul apparent :
sed -e 's/^/--> /;N;N'
mais ça se complique quand le reste n'est pas 1...
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.