Récuperer une chaine de caractère

lawrenz23 Messages postés 40 Statut Membre -  
floverdevel Messages postés 121 Statut Membre -
Bonjour,
je suis un débutant en langage perl. En fait je voudrai écrire un script afin d'afficher les 4 derniers caractères de chaque ligne d'un fichier.txt.
Voici le début de mon script et je voudrai de l'aide pour le compléter voir modifier entièrement le code.

Open(FILE,'fichier.txt') or die"$!";
while(<FILE>)

{
print +(split/\s+/)[8],"\n"; (// ici j'affiche la colonne que je veux découper et afficher les 4 derniers caractère.)
}
close FILE;
A voir également:

3 réponses

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

lami20j@debian-acer:~$ cat plop.pl
#!/usr/bin/perl
use strict;use warnings;
open "F","plop" or die "E/S : $!\n";

while (<F>){
  print $1,"\n" if /(.{4})$/;
}
__END__

lami20j@debian-acer:~$ cat plop
abcd 1234
efgh 5678
lami20j@debian-acer:~$ perl plop.pl
1234
5678


1
floverdevel Messages postés 121 Statut Membre 15
 
Tu peux le faire avec une «syntaxe plus simple» (mais je ne garanti pas que c'est plus rapide qu'un RegEx ...) en utilisant la fonction substr :
https://perldoc.perl.org/functions/substr

open(FILE, 'fichier.txt') or die"$!";
while(<FILE>) {
   print substr $_, -4 . "\n";
}
close FILE;

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

Tu peux le faire avec une «syntaxe plus simple»
En fait il y a un slogan en Perl (There's more than one way to do it) ;-)
Donc ta solution est bonne aussi (d'ailleurs j'ai pensé aussi au début à substr ;-)
En tout cas vu qu'il débute en Perl, c'est très bien d'avoir donné la solution avec substr.

Sinon, la maîtrise de regex en Perl c'est presque obligatoire et une fois apprises on se rend compte que (.{4}) n'est pas un syntaxe si complique comme tu laisses comprendre.

En revanche c'est possible que la fonction substr soit plus rapide, il faudrait faire un test ;-)
0
floverdevel Messages postés 121 Statut Membre 15
 
Salut :)
Et ce slogan peut même être appliqué à plein d'autres langages que Perl ...

Et quand je regarde ma réponse et la tienne, elles se ressemble pas mal ;)
En fait j'avais pas vu ta réponse avant d'afficher la mienne ...
0
lawrenz23 Messages postés 40 Statut Membre 6
 
Merci de m'avoir aider ca marche très bien.
0
lami20j Messages postés 21644 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Re,

C'est toi ge perl ?
Vu ton IP je dirais que oui.
0
lawrenz23 Messages postés 40 Statut Membre 6
 
oui c'est moi et merci encore.
J'aurais besoin de ton aide sur un script.
Comment récupérer des lignes dans un fichier puis afficher les 4 derniers caractères de chaque ligne.
0
lami20j Messages postés 21644 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Bon, si je comprends bien tu veux récupérer les 4 derniers sur certaines lignes seulement.
En ce cas il faut que tu donnes plus des précisions.
0