SED: copier/coller plusieurs lignes
Fermé
Greg
-
25 janv. 2010 à 16:53
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 12 oct. 2010 à 19:17
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 12 oct. 2010 à 19:17
A voir également:
- SED: copier/coller plusieurs lignes
- Remplacez le mot sed par le mot mais dans tout le texte. combien de caractères contient le document suite à cette modification (en incluant les espaces) ? - Guide
- Sed - Remplacement texte par retour à la ligne ? ✓ - Forum Linux / Unix
- Sed supprimer ligne vide - Forum Linux / Unix
- Sed windows - Forum Linux / Unix
- Comptage des caractères dans Word ✓ - Forum Word
8 réponses
Merci pour ton exemple tres clair jipicy !
Si je comprends bien, "3N" permet de lire la 3eme ligne et la ligne suivante, "h" copie en memoire et ensuite "4G" colle ce qui a ete copie apres la 4eme ligne.
Comment faire maintenant si je veux copier un bloc de plusieurs lignes et pas seulement 2 lignes ? J'ai essaye de jouer avec la commande "N" mais en vain.... et la lecture du manuel de sed ne m'eclaire pas plus...
Encore merci !
Si je comprends bien, "3N" permet de lire la 3eme ligne et la ligne suivante, "h" copie en memoire et ensuite "4G" colle ce qui a ete copie apres la 4eme ligne.
Comment faire maintenant si je veux copier un bloc de plusieurs lignes et pas seulement 2 lignes ? J'ai essaye de jouer avec la commande "N" mais en vain.... et la lecture du manuel de sed ne m'eclaire pas plus...
Encore merci !
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
26 janv. 2010 à 09:18
26 janv. 2010 à 09:18
Comment faire maintenant si je veux copier un bloc de plusieurs lignes et pas seulement 2 lignes ? J'ai essaye de jouer avec la commande "N" mais en vain.... et la lecture du manuel de sed ne m'eclaire pas plus...
D'où ma demande d'exemple concret, à chaque cas sa syntaxe (même si des syntaxes généralistes peuvent être appliquées) ;-((
Pour généraliser, il faut ajouter chaque ligne suivante en testant l'existence (ou pas, ça dépend des cas) d'un motif dans la dernière ligne à prendre en compte, à l'aide d'une boucle...
Voir :
Introduction à Sed - Part I
Introduction à Sed - Part II
Introduction à Sed - Part III
D'où ma demande d'exemple concret, à chaque cas sa syntaxe (même si des syntaxes généralistes peuvent être appliquées) ;-((
Pour généraliser, il faut ajouter chaque ligne suivante en testant l'existence (ou pas, ça dépend des cas) d'un motif dans la dernière ligne à prendre en compte, à l'aide d'une boucle...
Voir :
Introduction à Sed - Part I
Introduction à Sed - Part II
Introduction à Sed - Part III
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
25 janv. 2010 à 16:56
25 janv. 2010 à 16:56
Salut,
Exemple AVANT => APRES, merci ;-)
Exemple AVANT => APRES, merci ;-)
salut svp aider moi c urgent
j'ai un fichier ou j'ai plusieurs lignes
je voulais utiliser awk ou sed pour copier des lignes et les coller dans la ligne précédente par exemple
*A340/redft/zyfzhns/gtuizpoak/gzhjez/AMAL
/NCEN/SFRE/234f.kdv/
/KZUEOKZ/Z;HDIO/
/NU=572
*A340/redft/zyfzhns/gtuizpoak/gzhjez/AMAL
/NCEN/SFRE/234f.kdv/
/KZUEOKZ/Z;HDIO/
/NU=572
suivant
suivant
............
maintenant je voudrais avoir au finish
*A340/redft/zyfzhns/gtuizpoak/gzhjez/AMAL /NCEN/SFRE/234f.kdv//KZUEOKZ/Z;HDIO//NU=572
*A340/redft/zyfzhns/gtuizpoak/gzhjez/AMAL /NCEN/SFRE/234f.kdv//KZUEOKZ/Z;HDIO//NU=572
est ce que quelqu'un peut m'aider svp
truc urgent
j'ai un fichier ou j'ai plusieurs lignes
je voulais utiliser awk ou sed pour copier des lignes et les coller dans la ligne précédente par exemple
*A340/redft/zyfzhns/gtuizpoak/gzhjez/AMAL
/NCEN/SFRE/234f.kdv/
/KZUEOKZ/Z;HDIO/
/NU=572
*A340/redft/zyfzhns/gtuizpoak/gzhjez/AMAL
/NCEN/SFRE/234f.kdv/
/KZUEOKZ/Z;HDIO/
/NU=572
suivant
suivant
............
maintenant je voudrais avoir au finish
*A340/redft/zyfzhns/gtuizpoak/gzhjez/AMAL /NCEN/SFRE/234f.kdv//KZUEOKZ/Z;HDIO//NU=572
*A340/redft/zyfzhns/gtuizpoak/gzhjez/AMAL /NCEN/SFRE/234f.kdv//KZUEOKZ/Z;HDIO//NU=572
est ce que quelqu'un peut m'aider svp
truc urgent
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
12 oct. 2010 à 18:23
12 oct. 2010 à 18:23
Salut,
Si c'est toujours le même schéma (1 ligne commençant par * suivie de 3 lignes), cette syntaxe devrait faire l'affaire :
Si c'est toujours le même schéma (1 ligne commençant par * suivie de 3 lignes), cette syntaxe devrait faire l'affaire :
sed '/^\*/N;N;N;s/\n//g'
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
12 oct. 2010 à 19:17
12 oct. 2010 à 19:17
Et si ce n'est pas le même schéma et que le nombre de lignes suivantes est inconnu, cette syntaxe là devrait aller...
sed ':z;/^\*/N;/\n\*/!s/\n//;tz;P;D'
Desole mais je seche completement, c'est pour cela que je n'ai propose aucune solution. Je me doute qu'il faut utiliser les commandes H et G de sed, mais aucune idee comment...
Quelqu'un aurait-il un tuyau a me donner ? Merci d'avance !
Quelqu'un aurait-il un tuyau a me donner ? Merci d'avance !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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
25 janv. 2010 à 20:38
25 janv. 2010 à 20:38
Non, je te demande un exemple concret de fichier à modifier.
Ok, desole j'avais mal compris ;)
Voici donc le contenu ultra-simplifie d'un fichier avant et apres le copier-coller que j'aimerais effectuer. Les lignes 3 et 4 ont ete dupliquees.
Fichier initial:
aaaaaaa
bbbbbbb
cccccccc
ddddddd
eeeeeee
Fichier apres copier/coller:
aaaaaaa
bbbbbbb
cccccccc
ddddddd
cccccccc
ddddddd
eeeeeee
Il s'agit toutefois de realiser ce copier-coller sur une multitude de fichiers simultanement (les lignes a copier-coller sont toujours au meme endroit dans les differents fichiers).
Merci pour ton aide jipicy !
Voici donc le contenu ultra-simplifie d'un fichier avant et apres le copier-coller que j'aimerais effectuer. Les lignes 3 et 4 ont ete dupliquees.
Fichier initial:
aaaaaaa
bbbbbbb
cccccccc
ddddddd
eeeeeee
Fichier apres copier/coller:
aaaaaaa
bbbbbbb
cccccccc
ddddddd
cccccccc
ddddddd
eeeeeee
Il s'agit toutefois de realiser ce copier-coller sur une multitude de fichiers simultanement (les lignes a copier-coller sont toujours au meme endroit dans les differents fichiers).
Merci pour ton aide jipicy !
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
25 janv. 2010 à 22:24
25 janv. 2010 à 22:24
[tmpfs]$ cat plop bar foo aaaaaaa bbbbbbb cccccccc ddddddd eeeeeee aaaaaaa bbbbbbb cccccccc ddddddd eeeeeee aaaaaaa bbbbbbb cccccccc ddddddd eeeeeee [tmpfs]$ sed -s -i.bak '3N;h;4G' * [tmpfs]$ cat plop bar foo aaaaaaa bbbbbbb cccccccc ddddddd cccccccc ddddddd eeeeeee aaaaaaa bbbbbbb cccccccc ddddddd cccccccc ddddddd eeeeeee aaaaaaa bbbbbbb cccccccc ddddddd cccccccc ddddddd eeeeeee [tmpfs]$
;-))