[shell unix] Supprimer une partie du texte

Fermé
jebok Messages postés 358 Date d'inscription lundi 16 mai 2005 Statut Membre Dernière intervention 23 octobre 2007 - 22 août 2005 à 15:26
 Cyril - 11 déc. 2008 à 11:03
Bonjour,

j'ai un fichier de ce type :

/*------------------------*/
entree n°1
blablabla
blablabla
/*------------------------*/

/*------------------------*/
entree n°2
bliblibli
bliblibli
/*------------------------*/

...

Je souhaite supprimer une des entrées du fichier (une entrée = tout ce qui est entre les /*----*/ ) mais consevrer le reste.
Comment m'y prendre à l'aide d'une commande ksh ?
A voir également:

1 réponse

mamiemando Messages postés 33079 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 23 avril 2024 7 749
23 août 2005 à 00:08
Avec sed et une expression régulière bien choisie ;-)

man perlre
man sed

Exemple : supprimer ce qui est entre parenthèses dans le fichire plop.c
$ cat plop.c

#include <stdio.h>
#include <stdlib.h>

long double x, y;

int main(void)
{
        printf("Calcul de la moyenne\n");
        printf("Entrez le premier nombre : ");
        scanf("%Lf", &x);
        printf("\nEntrez le deuxieme nombre : ");
        scanf("%Lf", &y);
        printf("\nLa valeur moyenne de %Lf et de %Lf est %Lf. \n", x, y, (x+y)/2);
        return 0;
}

$ sed s/\(.*\)//g plop.c > plop2.c

#include <stdio.h>
#include <stdlib.h>

long double x, y;

int main
{
        printf;
        printf;
        scanf;
        printf;
        scanf;
        printf;
        return 0;
}
0
jebok Messages postés 358 Date d'inscription lundi 16 mai 2005 Statut Membre Dernière intervention 23 octobre 2007 51
24 août 2005 à 10:04
Oui mais je n'arrive pas à lui faire supprimer toutes les lignes qui se trouvent entre :

/**--------------*/
et
/*end**/
et qui contiennent un certain mot (par exemple AAAAAAAA)

Comment faire ?
0
Cyril > jebok Messages postés 358 Date d'inscription lundi 16 mai 2005 Statut Membre Dernière intervention 23 octobre 2007
11 déc. 2008 à 11:03
Je propose la commande sed :

sed -n '/debutTexteAconserver/ , /finTexteA conserver/p > fichierclean.txt
0