Coller du texte au début avec sed/ed
Résolu/Fermé
Little Black Cat
-
Modifié par jipicy le 4/05/2010 à 15:08
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 6 mai 2010 à 09:15
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 6 mai 2010 à 09:15
A voir également:
- Coller du texte au début avec sed/ed
- Excel cellule couleur si condition texte - Guide
- Texte argumentatif sur les avantages et les inconvénients du téléphone portable ✓ - Forum Mobile
- Mettre un texte en majuscule - Guide
- Copier coller texte pdf - Guide
- Deflouter texte - Forum Logiciels
5 réponses
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 895
4 mai 2010 à 09:12
4 mai 2010 à 09:12
Salut,
Est-ce que les données à mettre au début seront toujours 3 lignes consécutives ?
Est-ce que les données à mettre au début seront toujours 3 lignes consécutives ?
Merci pour la réponse rapide (comme toujours ;))
En fait ce fichier a été trié et les lignes à mettre au début sont consécutives et commence toutes par le même motif (popup). Leur nombre, quoique petit, est inconnu à priori, il peut y en avoir une, ou deux (c'est pour construire un menu).
En fait ce fichier a été trié et les lignes à mettre au début sont consécutives et commence toutes par le même motif (popup). Leur nombre, quoique petit, est inconnu à priori, il peut y en avoir une, ou deux (c'est pour construire un menu).
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 895
4 mai 2010 à 10:42
4 mai 2010 à 10:42
Re-
Un peu trop complexe en mettre en oeuvre avec "sed" (et je ne sais même pas si c'est possible d'ailleurs), donc on va faire avec "ed" qui intègre une fonction de déplacement :
En gros, tout ce qui ne contient pas (v) le motif (/début/) est déplacé (m) en fin de fichier ($). On sauve le tout avec la commande "w".
;-))
Un peu trop complexe en mettre en oeuvre avec "sed" (et je ne sais même pas si c'est possible d'ailleurs), donc on va faire avec "ed" qui intègre une fonction de déplacement :
jp@MDK:~/tmpfs ssh$ cat plop donnee1 donnee2 donnee3 donnee a mettre au debut1 donnee a mettre au debut2 donnee a mettre au debut3 donnee4 jp@MDK:~/tmpfs ssh$ ed -s plop <<< $'v/debut/m$\nw' jp@MDK:~/tmpfs ssh$ cat plop donnee a mettre au debut1 donnee a mettre au debut2 donnee a mettre au debut3 donnee1 donnee2 donnee3 donnee4 jp@MDK:~/tmpfs ssh$
En gros, tout ce qui ne contient pas (v) le motif (/début/) est déplacé (m) en fin de fichier ($). On sauve le tout avec la commande "w".
;-))
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
>Un peu trop complexe en mettre en oeuvre avec "sed" (et je ne sais même pas si c'est possible d'ailleurs)
Si, si et voici comment:
j'enregistre ce qui ne doit pas apparaître en début de fichier pour ne l'afficher qu'à la fin.
Il ne faut surtout pas utiliser la commande d sinon le fil des commandes n'est pas suivi.
On enregistre la 1ère ligne et on ajoute les suivantes (sinon une ligne vide apparaît quand on colle la 2ème partie du fichier).
Il est vrai que c'est un peu complexe. ;-)
Si, si et voici comment:
#!/bin/sed -nf :a $!{/popup/ {p;bnext} {1h;1!H} :next n ba } {/popup/p H g p }
j'enregistre ce qui ne doit pas apparaître en début de fichier pour ne l'afficher qu'à la fin.
Il ne faut surtout pas utiliser la commande d sinon le fil des commandes n'est pas suivi.
On enregistre la 1ère ligne et on ajoute les suivantes (sinon une ligne vide apparaît quand on colle la 2ème partie du fichier).
Il est vrai que c'est un peu complexe. ;-)
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 895
5 mai 2010 à 10:12
5 mai 2010 à 10:12
Chapeau bas et 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 895
6 mai 2010 à 09:15
6 mai 2010 à 09:15
Il n'y a pas de quoi ;-))