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
smime.p7s
Description: S/MIME Cryptographic Signature
