Daniel Moyne a �crit :
J'ai un gros fichier texte qui contient des lignes du type :
2 ALIAS [texte libre][caract�re de fin de ligne 0A]
que je voudrais enlever je veux dire ici supprimer la ligne et ne pas la remplacer par une ligne qui contiendrait des lignes vides.

Je pensais m'en tirer avec la fonctionnalit� expression rationnelle du menu "Rechercher" de "Kwrite" mais c'est bugg� et incomplet bien que prometteur, pour inclure des caract�re de contr�le type fin de ligne [0A]. Les autres logiciels "gEdit" et m�me "OpenOffice" ne proposent rien d'�quivalent � "KWrite". Dois-je me rabattre sur un script subtil avec grep ou autre et si oui comment faire ?

Voulant jouer aux apprentis sorcier sur une copie de mon fichier j'ai tent� ceci :
#!/bin/sh
# Test de awk
awk '/^2 ALIAS +(.*)/' /path/mon_fichier | ( \
while read line; do
# affichage des lignes lues
echo $line
# traitement de la ligne
line=""
echo $line
# �criture de la ligne dans le fichier
done
) || exit 0

en m'inspirant d'un script Mandrakien utilisant "awk"
- Je trouve bien toutes mes lignes puisqu'elles sont toutes affich�es,
- Mon traitement ici consiste � les remplacer par une ligne vide ce qui ne sera de toute fa�on pas suffisant car je ne veux pas de ligne du tout (peut-on y ajouter un petit backspace !)
- Je sais pas comment on �crit dans le fichier

Une petit aide avec explications sera vivement appr�ci�e.


C'est justement dans ce contexte que PERL montre sa supr�matie :-P

#!/usr/bin/perl

# Unbuffer the output

$| = 1;

#definition des chemin d'acc�s

$mon_fichier_a_traiter="/chemin/du/fichier/a/t0raiter.txt";
$mon_resultat="/chemin/du/fichier/trait�.txt";

#lecture du fichiers entr�e et mise en variable RAM

open(FILE_IN, < $mon_fichier_a_traiter);
@LINES=<FILE_IN>;
[EMAIL PROTECTED];
close(FILE_IN);

#Traitement en RAM!

open(FILE_OUT, > $mon_resultat);

for  (my $i = 0; $i < $SIZE; $i++)
        {
        chomp $LINES[$i];
        $cherche = index("$LINES[$i]","2 ALIAS");
        if ($cherche < 0) { print FILE_OUT $LINES[$i];}
        }
close (FILE_OUT);
print "Termin�";

--
Jean
                                \\\!///
                                -(@ @)-
----------------------------oOO--(_)--OOo----------------------------
Jean Segers              Venez r�ver -----> http://www.Demoiselle.com
26, rue du Pin                                  http://www.Sadems.com
34190 Saint Bauzille de Putois               http://it.mondelinux.org
France                                          http://www.deveze.com
Gsm 06 86 12 49 15                         http://www.cyberboutic.com
Tel 04 67 73 38 30                          http://mdk.mondelinux.org
Fax 08 25 19 24 61



Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

Répondre à