У меня есть данные, как показано ниже, и мне нужно отфильтровать автора с «изменениями файлов и измененными линиями/добавленными линиями». И мне нужно отдельно распечатать его на файл в отношении авторов. Если для нескольких коммитов есть одни и те же авторы, их нужно группировать вместе и печатать в файле. Я написал программу, как показано ниже, но нужно сортировать в отношении автора.Найдите несколько строк и напечатайте их в файле в порядке
********************************************************************************
Data
********************************************************************************
commit dbegafada..
Author: abc <[email protected]>
Commit: abc <[email protected]>
Merge
CR1514 - MEMODOK and topWedge merge top planet
Change-Id: MIG60dfdof5214ab47e39ba9b291c55b458649335cb16
/framework/base/xyc/a3.c
Lines Modified/Added - 2 Lines Deleted - 1
/frameworks/based/xycpog/ae3.c
Lines Modified/Added - 5 Lines Deleted - 4
/secure/basedfd/xyc/adf3.c
Lines Modified/Added - 12 Lines Deleted - 2
commit 45eeertdbegafada..
Author: loxzv <[email protected]>
Commit: loxzv <[email protected]>
Merge: Pure and greed issue fixed
Pure and greed issue
Change-Id: IG6fdof5214abe39ba9b291c55b458649335c....
/frameworks/base-log/xysc/ba3.c
Lines Modified/Added - 12 Lines Deleted - 9
/security/cops/xdsycpog/ae3.c
Lines Modified/Added - 5 Lines Deleted - 4
/Nosecure/coper/xyc/adff3.h
Lines Modified/Added - 12 Lines Deleted - 4
commit 45eeertdbegafada..
Author: loxzv <[email protected]>
Commit: loxzv <[email protected]>
Merge: Memory leak fixes are allowed
CRT56 Memory leak fixes are allowed
Change-Id: IG6fdof5214abe3dfdo0343dsssdfds9335c..b...
/inputs/base-log/xysc/bda3.c
Lines Modified/Added - 12 Lines Deleted - 9
/security/cops/xdsycpog/beae3.h
Lines Modified/Added - 5 Lines Deleted - 4
/fullysecure/golden/xyclub/srcGold.c
Lines Modified/Added - 12 Lines Deleted - 4
commit 45eeertdbegafada..
Author: navzv <[email protected]>
Commit: Gerrit Code Review
Merge: cold act app release
Merge cold act app release with service app
Change-Id: IG6fdof5214lkode..9ba9b2dfdfd91c5586...
/goldenrule/base-less/copycat/batcat3.c
Lines Modified/Added - 12 Lines Deleted - 9
/security/flops/justhog/state.c
Lines Modified/Added - 15 Lines Deleted - 3
/Nosecure/method/value/dadff3.h
Lines Modified/Added - 10 Lines Deleted - 7
Моя программа
#!/usr/bin/perl -w
use strict;
use warnings;
open(INFILE, "</home/symbol/data.txt") or die "Cannot open the file\n";
open(OUTFILE,">/home/symbol/Result1.txt") or die "Can’t open subjects file\n";
while (my $line = <INFILE>)
{
# To filter out the Modified (M), Added(A) & Deleted(D) Lines in the log file.
if ($line =~ /^M|^A|^D/) {
if ($line !~ /Merge|Author/) {
print OUTFILE $line;
}
}
if ($line =~ /^M|^A|^D/) {
my $nextLine = <INFILE>;
if ($line !~ /Merge|Author|Commit/) {
print OUTFILE $nextLine;
}
}
# Condition to print the Lines with M, A & D details.
if ($line =~ /^ Lines/) {
print OUTFILE $line;
}
# Condition to search for "Author:"
if ($line =~ /^Author:/){
print OUTFILE "\n**************************************************** AUTHOR MODIFIED/ADDED/DELETED FILES DETAILS *******************************************************\n";
print OUTFILE $line;
}
}
close INFILE;
close OUTFILE;
@Nav Пожалуйста, используйте функцию открытия 3 аргументов и используйте режим добавления '>>' для выходного файла. Избегайте дескрипторов файлов. Рассмотрите возможность использования '' * 'x 52' для печати звезд. почему вы дважды используете '/^M |^A |^D /' regex? – xtreak