2010-07-31 5 views
1

Comment puis-je faire Perl pour me dire le nombre de caractères d'un match, par exemple dans un fichier texte que je:nombre de caractères de correspondance en Perl

CHI (3) - NSH (1)   
DAL (4) - CHI (3)   
VAN (3) - CHI (2)  

Vous voulez que je veux est pour CHI le caractère numéro dans lequel apparaît, par exemple:

Line 1: 0 
Line 2: 9 
Line 3: 9 

Des idées ou des conseils?

+0

http://perldoc.perl.org/functions.html – Ether

Répondre

3
use strict; 
use warnings; 
use English qw<$INPUT_LINE_NUMBER>; 

open my $fh, '<', '/path/to/file/I/want' or die "Could not open file!"; 
while (<$fh>) { 
    printf "Line %d: %d\n", $INPUT_LINE_NUMBER, index($_, 'CHI'); 
} 
close $fh; 
1

solutions indicielles telle que publiée ici sont très bien, mais à des fins d'apprentissage, vous pouvez aussi utiliser une expression régulière, par exemple .:

... 

while(<$fh>){ 
    /CHI/g && print "Line $.: $-[0]\n" 
} 

... 

imprimerait votre choix sortie. Ce serait même faire une seule ligne de fantaisie:

$> perl -lne '/CHI/g && print "Line $.: $-[0]"' data.txt 

Cordialement

RBO

Questions connexes