2016-06-03 2 views
-2

let to explain В текстовом файле «script.txt» мне нужно найти слово «foo», сколько раз это происходило и в каких строках я должен был перечислить эти строки.подсчитывает, сколько раз слово происходит в файле, а также в каких строках?

+0

вы пробовали? – ssr1012

+0

my $ val = <"data.txt">; chomp ($ val); my $ cnt = 0; open (HNDL, "$ val") || умереть «неправильное имя файла»; while ($ val = ) { while ($ val = ~/\ bis \ b/ig) { ++ $ cnt; } } print "Количество экземпляров 'is' найдено: $ cnt \ n \ n"; print "$: $ val \ n"; close (HNDL); –

ответ

0

Try, как следовать

my $total; 
my $lines; 
open my $fh,"<","file.txt"; 
while (<DATA>) 
{ 
    if(my $ech_count =() = /\bfoo\b/g) 
    { 
     $total+=$ech_count; 
     $lines.=$.."\n"; 
    } 

} 
print " Total count : $total\nLines are: \n $lines"; 

В вышеприведенном сценарии $ech_count хранит количество спичек в строках он является выполнить с помощью =() =.

$. Это специальная переменная perl inbuild, которая дает текущий номер строки.

0

Пожалуйста, попробуйте следующее:

use strict; 
use warnings; 

my @lines = <DATA>; 
my ($word_count, $total) = ''; 
foreach my $single(@lines) 
{ 
    if($single=~m/\bfoo\b/g) 
    { 
     $word_count = $single=~s/\bfoo\b/$&/g; 
     print "Line Matched: $single\n"; 
     $total = $total + $word_count; 
    } 
} 
print "Foo Count: $total\n"; 
Смежные вопросы