Supprimer une partie d'un fichier -shell
Résolu/Fermé
endefu
Messages postés
21
Date d'inscription
lundi 11 mai 2009
Statut
Membre
Dernière intervention
7 septembre 2010
-
13 mai 2009 à 15:07
endefu Messages postés 21 Date d'inscription lundi 11 mai 2009 Statut Membre Dernière intervention 7 septembre 2010 - 13 mai 2009 à 19:36
endefu Messages postés 21 Date d'inscription lundi 11 mai 2009 Statut Membre Dernière intervention 7 septembre 2010 - 13 mai 2009 à 19:36
A voir également:
- Supprimer une partie du nom de plusieurs fichiers
- Supprimer une page word - Guide
- Impossible de supprimer un fichier - Guide
- Batch renommer une partie du nom de plusieurs fichiers - Guide
- Supprimer compte instagram - Guide
- Le fichier à télécharger est la nouvelle note de service de votre entreprise. importez ce fichier dans le bon dossier sur l'espace pix cloud. donnez à ce fichier les mêmes droits d'accès que les autres notes de service. ✓ - Forum Windows
3 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 897
13 mai 2009 à 15:31
13 mai 2009 à 15:31
Salut,
[tmpfs]$ cat plop 1 motif A .... A .... 2 .... B .... B .... [tmpfs]$ sed '/1 motif/,/2/{/2/b;d;}' plop 2 .... B .... B .... [tmpfs]$;-))
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
13 mai 2009 à 16:34
13 mai 2009 à 16:34
Sinon avec "ed" c'est encore plus simpliste :
[tmpfs]$ cat foo motif A .... A .... bla .... B .... B .... [tmpfs]$ ed -s foo <<<$'/motif/,/bla/-1d\nw bar' [tmpfs]$ cat bar bla .... B .... B .... [tmpfs]$Si tu veux éditer/modifier le même fichier (sans envoyer le résultat dans un fichier tiers), il suffit d'enlever le nom de fichier après le "w".
endefu
Messages postés
21
Date d'inscription
lundi 11 mai 2009
Statut
Membre
Dernière intervention
7 septembre 2010
1
13 mai 2009 à 19:20
13 mai 2009 à 19:20
Tout d'abord merci pour ta réponse,
Mais je n'ai pas bien compris ta 1ière possibilité.
Effectivement faire deux commandes à ce point c'est pas mal (je ne savais pas ca possible).
Par contre c'est le b que je comprends pas.
Tu m'as inspiré une reponse, c'est à dire que je ferais la même chose mais avec p (print) plutôt que b(?)
sed '/1 motif/,/2/{/2.*/p;d}' plop : ceci m'a l'air de marcher lui aussi. Ce que je comprends c'est que j'écris la dernière ligne avant de tout effacer comme je le faisais précedemment.
Est ce que je me trompe? Est ce la même chose que avec b?
Merci
Mais je n'ai pas bien compris ta 1ière possibilité.
Effectivement faire deux commandes à ce point c'est pas mal (je ne savais pas ca possible).
Par contre c'est le b que je comprends pas.
Tu m'as inspiré une reponse, c'est à dire que je ferais la même chose mais avec p (print) plutôt que b(?)
sed '/1 motif/,/2/{/2.*/p;d}' plop : ceci m'a l'air de marcher lui aussi. Ce que je comprends c'est que j'écris la dernière ligne avant de tout effacer comme je le faisais précedemment.
Est ce que je me trompe? Est ce la même chose que avec b?
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
13 mai 2009 à 19:27
13 mai 2009 à 19:27
Oui.
Normalement la commande "b" (branch ou branchement) comme son nom l'indique se branche à la fin du script, sans interpréter les commandes qui suivent, imprime la ligne sur la sortie standard et charge une nouvelle ligne dans le tampon.
La commande "p" (print) fait la même chose. Honnêtement je n'avais jamais essayé dans la mesure où il n'y avait pas l'option "-n" (demande implicite d'affichage) et que la commande "b" faisait bien son boulot ;-))
Merci à toi.
Normalement la commande "b" (branch ou branchement) comme son nom l'indique se branche à la fin du script, sans interpréter les commandes qui suivent, imprime la ligne sur la sortie standard et charge une nouvelle ligne dans le tampon.
La commande "p" (print) fait la même chose. Honnêtement je n'avais jamais essayé dans la mesure où il n'y avait pas l'option "-n" (demande implicite d'affichage) et que la commande "b" faisait bien son boulot ;-))
Merci à toi.
endefu
Messages postés
21
Date d'inscription
lundi 11 mai 2009
Statut
Membre
Dernière intervention
7 septembre 2010
1
>
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
13 mai 2009 à 19:36
13 mai 2009 à 19:36
Effectivement quand j'ai survolé/lu ton aide sur sed, j'ai vu quelques utilisations de b mais c'était toujours avec des etiquettes, d'où ma surprise. Je crois avoir compris ton explication je ferais des tests pour vérifier ca.
Honnêtement le -n je l'ai oublié donc c'était pas tout à fait controlé. :P .
Merci bien.
Problème résolu donc.
Honnêtement le -n je l'ai oublié donc c'était pas tout à fait controlé. :P .
Merci bien.
Problème résolu donc.