PDA

Afficher la version complète : [Réglé] sed



paul18
31/12/2013, 00h29
Bonsoir,

je découvre à peine sed et déjà quelle puissance (alors que je me lançais dans un programme compliqué sur un fichier de plusieurs million de lignes) ...

2 petites questions :

a) dans l'instruction suivante, chaque ligne est copiée 7 fois ... ça marche

sed '{h;p;p;p;p;p;p;p}' toto > titi

j'aimerais ne pas répéter 7 fois 'p' (voire que 7 devienne une variable, mais je n'y arrive pas ; ce qui suit ne marche pas


n= 7
sed '{h;p\{7\}}' toto > titi


quelle est la bonne synthaxe ?

b) enfin, il y a une logique à choper dans la construction sous sed : un bon tuto à conseiller ?

merci

Paul

jluce
31/12/2013, 11h51
yop

comme ca a froid non je vois pas

pour les tutoriel:



(fr) shellunix.com - Sed - Documentation succincte (http://www.shellunix.com/sed.html)
(fr) commentcamarche.net - Documentation très complete de Sed (http://www.commentcamarche.net/faq/sed-478)
(fr) fr.wikipedia.org - Wikipedia - Stream Editor (http://fr.wikipedia.org/wiki/Stream_Editor)
(fr) doc.ubuntu-fr.org - Sed - Documentation Ubuntu francophone (http://doc.ubuntu-fr.org/sed)
(fr) gentoo.org - Documentation Gentoo -- Sed par l'exemple — Première partie (http://www.gentoo.org/doc/fr/articles/l-sed1.xml)
(fr) gentoo.org - Documentation Gentoo -- Sed par l'exemple — Deuxieme partie (http://www.gentoo.org/doc/fr/articles/l-sed2.xml)
(en) sed.sourceforge.net - Sed Faq (http://sed.sourceforge.net/sedfaq.html)
(en) grymoire.com - Sed - An Introduction and Tutorial (http://www.grymoire.com/Unix/Sed.html)
(fr) siteduzero.com - Tutoriel sur la commande Sed (http://www.siteduzero.com/tutoriel-3-287602-la-commande-sed.html)


et sinon si tu souhaites en acheter un je te conseil "Languages de script sous linux" des éditions Eyrolles:

2323

si ca peut aider

a+

paul18
02/01/2014, 18h51
merci pour ces liens

je trouve pas pour mon pb particulier, mais j'y ai péché des infos intéressantes ;

pour revenir à mon premier post, je pense qu'il me faut passer par un autre outil de type "awk" par exemple

Paul

Antoine
02/01/2014, 22h25
Salut Paul,


pour revenir à mon premier post, je pense qu'il me faut passer par un autre outil de type "awk" par exemple

Avec awk, ça passe assez bien effectivement :


n=7
awk -v N=$n '{for(i=1;i<=N;i++) {print $0}}' toto > titi

L'option -v (version longue : --assign) sert à faire passer la variable externe n à awk.
Après une simple boucle for comme en C.

À+

paul18
03/01/2014, 10h03
merci à vous 2 pour ces infos

Paul