perl 스크립트에서 파일을 처리하는 동안 어떤 조건까지 필요한 grep 방법

Shantesh

다음과 같은 다양한 경고를 캡처하여 한 줄을 만들고 싶습니다.

여기에 다른 경고를 수집하는 데 사용하는 코드 스 니펫이 있으며 경고 패턴을 관찰 한 후 다른 줄에 대한 경고가 있으며 다음 줄 경고 부분을 한 줄에 결합하고 해시 참조를 할당하고 싶습니다.

#!/usr/bin/perl

use strict;
use warnings;

open(FH,"/home/goudar/Desktop/1.log") or die !$;

while(<FH>){
    my $line = $_;
    if($line =~ m/^Warning: (.*)$/){
                my $date1 = `date`;
                chomp($date1);
                $subStepValues = {
                    Warning => $1,
                    Warning_timeStamp => $date1,
                };
                push @{$subsSteps->{'subStepValues'}}, $subStepValues;
            }
}
close(FH);

파일

Warning: No clock-gating check is inferred for clock clk_12800 
at pins i_osc/i_osc_top/i_clk_div/g817/S and i_osc/i_osc_top/i_clk_div/g817/A1 of cell i_osc/i_osc_top/i_clk_div/g817. (PTE-060)
Warning: Virtual clock 'clk_vir' cannot be made propagated. (UITE-316)
Warning: Virtual clock 'clk_ext' cannot be made propagated. (UITE-316)
Warning: Net i_obr/i_obr34/rec2 has been annotated with max resistance
using the set_resistance command.  This takes precedence over
values from parasitics. (PARA-047)
Warning: Net i_obr/i_obr34/rec2 has been annotated with min resistance
using the set_resistance command.  This takes precedence over
values from parasitics. (PARA-047)
임대

코드에 아주 작은 추가가 필요합니다.

일치하는 것 이외의 유일한 가능성 /^Warning:/은 정확히 원하는대로 다음 줄에서 계속되는 것입니다. 따라서 else분기 를 추가 하고 그 안에 이전에 마지막으로 일치 한 ' 경고 '에 줄을 추가 할 수 있습니다 . 이것은 여러 줄도 처리하며, 모두 마지막 ' 경고 '에 차례로 추가됩니다. 따라서 다음을 수행해야합니다.

1) 마지막 일치 배열의 위치를 ​​기억하십시오 ( ' 경고 ')

2) 카운터의 마지막 값을 사용하여 else마지막 ' 경고 '에 줄을 추가하는를 추가하십시오 .
이것이 작동하려면 이제 chomp라인에 있어야합니다 .

use strict;
use warnings;

open(FH,"/home/goudar/Desktop/1.log") or die !$;

my $subStepValues;   # added missing declarations
my $subsSteps = { };

my $cnt = -1;                                   # added
while (<FH>) {
    chomp(my $line = $_);                       # added
    if ($line =~ m/^Warning: (.*)$/) {
        $cnt++;                                 # added
        my $date1 = `date`;
        chomp($date1);
        $subStepValues = { 
            Warning => $1, 
            Warning_timeStamp => $date1,
        };
        push @{ $subsSteps->{'subStepValues'} }, $subStepValues;
    }   
    else {                                      # added
        $subsSteps->{'subStepValues'}->[$cnt]->{'Warning'} .= " $line";
    }   
}
close(FH);

foreach my $ss (@{$subsSteps->{'subStepValues'}}) { # added, print
    foreach my $key (keys %{$ss}) {
        print "$key => $ss->{$key}\n";
    }   
}

이것은 각 ' 경고 '에 속하는 모든 줄을 인쇄합니다 .

3 인수 open,, open my $fh, '<', $infile그리고 while ($fh) { }.


또는 전체 파일을 하나의 문자열로 읽고 (또는 배열로 읽고 결합하여) 새 줄을 제거 할 수 있습니다. 그런 다음 해당 문자열을 분할 Warning:(첫 번째 요소, 빈 문자열 삭제)하거나 동일한 방식으로 일치하지만 전역 적으로 일치시킵니다 ( /g수정 자).

이것은 각 요소가 모든 텍스트가에 속하는 문자열 인 배열을 형성합니다 /^Warning:/. 그런 다음 해당 배열을 다시 전달하여 해당 타임 스탬프를 추가하고 데이터 구조에 모두 넣습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

동일한 Perl 스크립트에서 전체 파일과 한 줄씩 파일을 읽는 방법

분류에서Dev

디렉토리에서 최신 파일을 이동 한 다음 나머지 스크립트를 처리하는 방법

분류에서Dev

Glassfish : 클러스터에서 어떤 시스템이 요청을 처리하는지 확인하는 방법

분류에서Dev

웹 페이지에 대한 요청을 제공하는 동안 어떤 방법이 식사 시간인지 식별하는 방법은 무엇입니까?

분류에서Dev

한 폴더에서 다른 폴더로 최신 파일을 이동하는 배치 스크립트에 어떤 문제가 있습니까?

분류에서Dev

두 프로젝트의 파일 목록에서 어떤 파일이 동일한 지 확인하는 방법

분류에서Dev

어떤 방법이 자바 스크립트에서 다른 방법을 호출하는지 아는 방법

분류에서Dev

어떤 방법이 자바 스크립트에서 다른 방법을 호출하는지 아는 방법

분류에서Dev

동일한 PC에서 두 네트워크 어댑터 간의 처리량을 테스트하는 방법은 무엇입니까?

분류에서Dev

if 조건을 사용하여 perl에서 2 개의 파일이 비어 있는지 확인하는 방법

분류에서Dev

CDN (다른 곳)에서 호스팅되는 자바 스크립트 라이브러리에 필요한 파일을 덮어 쓰는 방법은 무엇입니까?

분류에서Dev

어떤 파일에 grep 결과가 있는지 확인하는 방법은 무엇입니까?

분류에서Dev

쉘 스크립트를 사용하여 파일에서 한 줄의 공간을 처리하는 방법은 무엇입니까?

분류에서Dev

Perl 스크립트에서 Pl SQL 파일을 실행하는 방법

분류에서Dev

텍스트 파일에서 명령을 실행하기위한 perl 스크립트를 어떻게 얻을 수 있습니까?

분류에서Dev

ReactJS에서 setState를 호출하는 동안 자바 스크립트 객체에서 조건부로 값을 제거하는 방법은 무엇입니까?

분류에서Dev

R에서 큰 csv 파일을 처리하는 동안 중단 방지

분류에서Dev

cron job sheduled PHP 스크립트를 실행하는 동안 PHP 서버에서 요청을 중지하는 방법은 무엇입니까?

분류에서Dev

쉘 스크립트에서 루핑하는 동안 디렉토리 및 파일 이름을 얻는 방법

분류에서Dev

동일한 파일에서 두 개의 grep 명령을 실행하는 방법은 무엇입니까?

분류에서Dev

Apache에 대한 파일 권한을 처리하는 간단하고 안전한 방법은 무엇입니까?

분류에서Dev

무한히 실행되는 Perl 스크립트-무슨 일이 일어 났는지 디버그하는 방법?

분류에서Dev

어떤 경우에는 perl`rename` 스크립트가 작동하지 않습니까?

분류에서Dev

Perl에서 텍스트 파일로 출력을 작성하는 동안 파일 처리기가 중단됨

분류에서Dev

파일 이동 스크립트가 Perl에서 작동하지 않습니다.

분류에서Dev

동일한 스크립트에서 생성 된 파일을 사용하는 방법

분류에서Dev

동일한 Python 스크립트에서 .py 및 .exe 파일을 모두 실행하는 방법

분류에서Dev

쿼리에서 필요하지 않은 MS Access 텍스트 필드를 처리하는 가장 안전한 실용적인 방법은 무엇입니까?

분류에서Dev

JPA-다 대다 관계를 쿼리하는 동안 불필요한 조인을 방지하는 방법

Related 관련 기사

  1. 1

    동일한 Perl 스크립트에서 전체 파일과 한 줄씩 파일을 읽는 방법

  2. 2

    디렉토리에서 최신 파일을 이동 한 다음 나머지 스크립트를 처리하는 방법

  3. 3

    Glassfish : 클러스터에서 어떤 시스템이 요청을 처리하는지 확인하는 방법

  4. 4

    웹 페이지에 대한 요청을 제공하는 동안 어떤 방법이 식사 시간인지 식별하는 방법은 무엇입니까?

  5. 5

    한 폴더에서 다른 폴더로 최신 파일을 이동하는 배치 스크립트에 어떤 문제가 있습니까?

  6. 6

    두 프로젝트의 파일 목록에서 어떤 파일이 동일한 지 확인하는 방법

  7. 7

    어떤 방법이 자바 스크립트에서 다른 방법을 호출하는지 아는 방법

  8. 8

    어떤 방법이 자바 스크립트에서 다른 방법을 호출하는지 아는 방법

  9. 9

    동일한 PC에서 두 네트워크 어댑터 간의 처리량을 테스트하는 방법은 무엇입니까?

  10. 10

    if 조건을 사용하여 perl에서 2 개의 파일이 비어 있는지 확인하는 방법

  11. 11

    CDN (다른 곳)에서 호스팅되는 자바 스크립트 라이브러리에 필요한 파일을 덮어 쓰는 방법은 무엇입니까?

  12. 12

    어떤 파일에 grep 결과가 있는지 확인하는 방법은 무엇입니까?

  13. 13

    쉘 스크립트를 사용하여 파일에서 한 줄의 공간을 처리하는 방법은 무엇입니까?

  14. 14

    Perl 스크립트에서 Pl SQL 파일을 실행하는 방법

  15. 15

    텍스트 파일에서 명령을 실행하기위한 perl 스크립트를 어떻게 얻을 수 있습니까?

  16. 16

    ReactJS에서 setState를 호출하는 동안 자바 스크립트 객체에서 조건부로 값을 제거하는 방법은 무엇입니까?

  17. 17

    R에서 큰 csv 파일을 처리하는 동안 중단 방지

  18. 18

    cron job sheduled PHP 스크립트를 실행하는 동안 PHP 서버에서 요청을 중지하는 방법은 무엇입니까?

  19. 19

    쉘 스크립트에서 루핑하는 동안 디렉토리 및 파일 이름을 얻는 방법

  20. 20

    동일한 파일에서 두 개의 grep 명령을 실행하는 방법은 무엇입니까?

  21. 21

    Apache에 대한 파일 권한을 처리하는 간단하고 안전한 방법은 무엇입니까?

  22. 22

    무한히 실행되는 Perl 스크립트-무슨 일이 일어 났는지 디버그하는 방법?

  23. 23

    어떤 경우에는 perl`rename` 스크립트가 작동하지 않습니까?

  24. 24

    Perl에서 텍스트 파일로 출력을 작성하는 동안 파일 처리기가 중단됨

  25. 25

    파일 이동 스크립트가 Perl에서 작동하지 않습니다.

  26. 26

    동일한 스크립트에서 생성 된 파일을 사용하는 방법

  27. 27

    동일한 Python 스크립트에서 .py 및 .exe 파일을 모두 실행하는 방법

  28. 28

    쿼리에서 필요하지 않은 MS Access 텍스트 필드를 처리하는 가장 안전한 실용적인 방법은 무엇입니까?

  29. 29

    JPA-다 대다 관계를 쿼리하는 동안 불필요한 조인을 방지하는 방법

뜨겁다태그

보관