prstat 로그 파일의 각 줄에 위 날짜를 추가하고 싶습니다.

prstat 로그 파일의 각 줄에 위 날짜를 추가하고 싶습니다.

저는 prstat 로그를 가지고 있는데 여러분 모두 아시다시피 날짜와 시간이 로그 파일 상단에 기록됩니다. 새 날짜에 도달할 때까지 해당 날짜와 시간을 각 줄의 시작 부분에 추가하고 싶습니다. 그런 다음 이를 추가하겠습니다. 날짜와 시간을 로그에 부분적으로 동일한 작업을 수행합니다.

가능합니까? 명령이나 스크립트를 통해 이 작업을 수행할 수 있는 방법이 있나요? 이를 수행하기 위한 스크립트를 만들겠지만 데이터가 이미 수집되었으므로 너무 늦을 것입니다.

답변1

날짜 형식이 yyyy-mm-dd hh:mi:ss라고 가정하면 다음 perl 스크립트를 사용할 수 있습니다.

#!/usr/bin/perl -w

open(FILEH,"<","your.log") or die "cannot open file";
my $date = "0000-00-00 00:00:00";

while(<FILEH>) {
    if( /^([A-Z][a-z]{2}\s[A-Z][a-z]{2}\s[0-9]+\s[0-2][0-9]:[0-5][0-9]:[0-5][0-9]\s[0-9]{4})$/ ) {
        $date = $1;
    }
    else {
        print "$date $_";
    }
}

your.log를 로그 파일의 전체 경로로 변경합니다.

답변2

나는 파이썬에 대해 잘 모르지만 시도해 보았습니다.

#!/usr/bin/env python

Each_line = [line.split() for line in open('/tmp/prstat.log')]

for n in xrange(len(Each_line)):
    if '2008' in Each_line[n]:
         print " ".join(Each_line[n])," ".join(Each_line[n+1])

관련 정보