Récuperer une chaine de caractère

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;

3 réponses

  1. Modérateur
    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
    1. 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
      1. Modérateur
        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
      2. 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
    2. Merci de m'avoir aider ca marche très bien.
      0
      1. Modérateur
        Re,

        C'est toi ge perl ?
        Vu ton IP je dirais que oui.
        0
      2. 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
      3. Modérateur
        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