[shell unix] Supprimer une partie du texte

jebok Messages postés 358 Statut Membre -  
 Cyril -
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 34184 Statut Modérateur 7 888
 
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 Statut Membre 51
 
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 Statut Membre
 
Je propose la commande sed :

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