텍스트 파일에서 숫자를 가져와서 함께 추가하세요.

텍스트 파일에서 숫자를 가져와서 함께 추가하세요.

아래와 같이 수백 줄의 텍스트 파일이 있습니다. 레코드 개수를 추출해서 합치는 방법을 찾으려고 합니다. 그런 다음 답변을 별도의 파일에 저장하고 싶습니다. 이것이 제가 작성하려고 시도한 첫 번째 스크립트입니다.

Record 4957 of message 1:
Record 3411 of message 1:
Record 2529 of message 1:

답변1

펄 한 줄:

perl -ne '$c += $_ for m/(\d+)(?!=:)/g; }{ print $c' in.txt > out.txt

Perl 스크립트 형식:

#!/usr/bin/perl
use warnings;
use strict;

my $infile = 'in.txt';
my $outfile = 'out.txt';

open my $fh, '<', $infile
  or die $!;

my $count = 0;

while (my $line = <$fh>){
    my @line_count = $line =~ m/(\d+)(?!=:)/g;
    $count += $_ for @line_count;
}

close $fh or die $!;

open my $wfh, '>', $outfile
  or die $!;

print $wfh $count;

close $wfh or die $!;

간략한 설명: 다음에 추가되지 않는 한 행당 하나 이상의 연속 정수의 모든 인스턴스를 수집합니다 :. 그런 다음 이러한 새 값을 추가하기만 하면 변수가 업데이트됩니다.

답변2

죄송합니다. 필수 awk 답변을 알아내야 합니다.

awk '{sum+=$2}END{print "There are "sum" records."}' in.txt

Ninja 편집기는 "Record"가 있는 행만 합산되도록 합니다.

awk '$1=="Record"{sum+=$2}END{print "There are "sum" records."}' in.txt

관련 정보