SED: copier/coller plusieurs lignes
Greg
-
jipicy Messages postés 40842 Date d'inscription Statut Modérateur Dernière intervention -
jipicy Messages postés 40842 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
un truc tout bete a faire mais je n'arrive pas a trouver:
comment copier plusieurs lignes et les coller a un autre endroit dans le fichier ? Tout ca en utilisant SED (de preference) et en effectuant la meme action sur plusieurs fichiers a la fois.
Merci d'avance !
Greg
un truc tout bete a faire mais je n'arrive pas a trouver:
comment copier plusieurs lignes et les coller a un autre endroit dans le fichier ? Tout ca en utilisant SED (de preference) et en effectuant la meme action sur plusieurs fichiers a la fois.
Merci d'avance !
Greg
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 et ses caprices (ou les miens) ✓ - Forum Linux / Unix
- Sed crlf - Astuces et Solutions
- Sed - Remplacement texte par retour à la ligne ? ✓ - Forum Linux / Unix
- Sed supprimer ligne vide - Forum Linux / Unix
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 !
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
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
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
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 !
[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]$
;-))