Rechercher : dans
Par :

[shell unix] Supprimer une partie du texte

Dernière réponse le 11 déc 2008 à 11:07:15 jebok, le 22 aoû 2005 à 15:26:54 
 Signaler ce message aux modérateurs

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 ? Merci de votre aide
Configuration: AIX
ksh

Meilleures réponses pour « [shell unix] Supprimer une partie du texte » dans :
Sed - Supprimer une ou plusieurs lignes d'un fichier VoirSupprimer une (ou plusieurs) ligne(s) d'un fichier Syntaxe sed '{[/]||[/]}d' sed '{[/][,][/]d' /.../ = délimiteurs n = le numéro de ligne chaîne = la chaîne contenue dans la...
GParted (Gnome partition editor) VoirIntroduction Qu'est-ce que GParted ? Quel est le principal intérêt dans l'utilisation de GParted? Où peut-on se procurer GParted? Comment utiliser GParted ? Réduire la partition NTFS Créer de nouvelles partitions Astuce supplémentaire...
Sed - Conversion retours chariots DOS (CRLF) / UNIX (LF) VoirConversion format de fichier DOS UNIX / UNIX DOS Préambule Ce qu'il faut savoir Conversion DOS vers UNIX Conversion UNIX vers DOS Préambule Il existe déjà des utilitaires (dos2unix et unix2dos) qui s'acquittent très bien ce cette...
Commandes UNIX VoirTableau des principales commandes UNIX Commande Unix Description Options ls liste le contenu d'un répertoire -a Affiche tous les fichiers, y compris les fichiers cachés ...
Systèmes UNIX - Le shell VoirIntroduction au shell L'interpréteur de commandes est l'interface entre l'utilisateur et le système d'exploitation, d'où son nom anglais «shell», qui signifie «coquille». Le shell est ainsi chargé de faire l'intermédiaire entre le système...

1

mamiemando, le 23 aoû 2005 à 00:08:54

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;
}

Répondre à mamiemando

2

jebok, le 24 aoû 2005 à 10:04:00

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 ? Merci de votre aide

Répondre à jebok

3

 Cyril, le 11 déc 2008 à 11:03:03

Je propose la commande sed :

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

Répondre à Cyril