Perl Supprimer retour chariot une ligne sur 2

orlando_84 Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   -  
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   -
Bonjour,

Je souhaite connaitre la commande pour supprimer une ligne sur deux dans un fichier

Merci de vos contribution
A voir également:

6 réponses

lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Salut,

Essaie plutôt de nous montre ce que tu essaie faire.
A cette question je te réponds, pour l'autre on attends voir ce que tu as essayer faire.
On n'est pas la pour faire à ta place, mais pour t'aider où ça coince chez toi.

Les lignes paires et impaires sont traitées.

lami20j@debian-acer:~$ cat ligne 
ligne1
ligne2
ligne3
ligne4
ligne5
ligne6
lami20j@debian-acer:~$ perl -ne 'print if ($.-1)%2==0' ligne
ligne1
ligne3
ligne5
lami20j@debian-acer:~$ perl -ne 'print if $.%2==0' ligne
ligne2
ligne4
ligne6

0
orlando_84 Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
Supprimer toutes les ligne impaires
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Re,

Ce qui est équivalent a afficher les lignes paires.
Regarde mon exemple, les deux cas sont traités.
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
hello
avec awk (nawk sur Solaris)
$ cat a2
ligne1
ligne2
ligne3
ligne4
ligne5
ligne6
$ 
$ awk 'NR%2{print}' a2
ligne1
ligne3
ligne5
$ 
$ awk '!(NR%2){print}' a2
ligne2
ligne4
ligne6
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
orlando_84 Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
Voici ma solution


open(FILE_TEMP, "<FILE_TEMP") or die "Cannot open fichier : $!";
open(FILE_FINAL, ">FILE_FINAL") or die "Cannot open fichier : $!";

while (<FILE_TEMP>) {
if (($.-1)%2==0) {
s/\n//;
print FILE_FINAL $_;
}
else {
print FILE_FINAL $_;
}
}

close (FILE_FINAL);
close (FILE_TEMP);
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Salut,

pour supprimer une ligne sur deux dans un fichier
Ta solution ne corresponde pas à ce que tu as demandé ;-)

En revanche vu ton code je comprends que tu voulais en faites supprimer tout simplement le saut de ligne sur deux lignes.

ligne1
ligne2
ligne3
ligne4


en

ligne1lign2
ligne3ligne4


Une ligne et un saut de ligne ce n'est pas la même chose ;-)
0