Perl Supprimer retour chariot une ligne sur 2

Fermé
orlando_84 Messages postés 6 Date d'inscription jeudi 25 février 2010 Statut Membre Dernière intervention 4 mars 2010 - 25 févr. 2010 à 19:20
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 4 mars 2010 à 09:55
Bonjour,

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

Merci de vos contribution

6 réponses

lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
25 févr. 2010 à 19:45
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 jeudi 25 février 2010 Statut Membre Dernière intervention 4 mars 2010
25 févr. 2010 à 19:49
Supprimer toutes les ligne impaires
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
25 févr. 2010 à 20:01
Re,

Ce qui est équivalent a afficher les lignes paires.
Regarde mon exemple, les deux cas sont traités.
0
dubcek Messages postés 18767 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 5 mars 2025 5 628
26 févr. 2010 à 09:42
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 jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
26 févr. 2010 à 10:23
0

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

Posez votre question
orlando_84 Messages postés 6 Date d'inscription jeudi 25 février 2010 Statut Membre Dernière intervention 4 mars 2010
4 mars 2010 à 09:35
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 jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
4 mars 2010 à 09:55
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