1

たとえば、そのフォルダ内にverilogというフォルダがあり、さらにいくつかのフォルダとファイルがあります。

各ファイルのパターンを1行ずつ検索し、パターンが一致した回数をカウントしてから、ファイル名、行番号、およびカウントを出力します。

4

3 に答える 3

1

ファイル名と行番号:

system("find verilog -type f -exec grep -Hn pattern {} +")

ファイル名とファイルごとの数:

system("find verilog -type f -exec grep -Hc pattern {} +")
于 2012-11-06T10:01:38.307 に答える
1
#!usr/bin/perl

use strict;
use File::Find;
use File::Slurp;

my $In_dir='some_path';
my @all_files;
my $pattern='test>testing string(\n|\t|\s)</test'

File::Find:find(
sub{
  push @all_files,$File::Find:name if(-f $File::Find:name);
},$In_dir);

foreach my $file_(@all_files){
  my @file_con=read_file($file_);
  my $lne_cnt;
  foreach my $con(@file_con){
   my $match_="true" if($con=~m/$pattern/igs);
   $lne_cnt++;
  }
 my $tot_line_in_file=$lne_cnt;
}
于 2012-11-06T11:50:40.983 に答える
1

「verilog」ディレクトリ内から実行する次のコマンド: grep -R の使用:

ファイル名と行番号の場合:

grep -RHn pattern * | cut -d: -f-2

ファイル名とカウントの場合:

grep -RHc india * | awk -F":" '$2!=0'
于 2012-11-06T10:13:55.077 に答える