いくつかのテスト結果を要約しているので、次の種類のテキストがあります。
FAILED src/path/to/code.test.js
Test Suite
ベストアンサー1
これはもっと仕事ですperl
。
perl -lne '
if (/^\h*at\h.*?\((src.*?\.test\.js):(\d+:\d+)\)/) {
$total{$1}++;
$lines{$1}->{$2}++
}
END {
for $file (sort {$total{$b} <=> $total{$a}} keys %total) {
my $l = $lines{$file};
print "$total{$file} $file (" .
join(", ", map "$l->{$_} - $_", sort {$l->{$b} <=> $l->{$a}} keys %$l) . ")"
}
}'
Perl正規表現演算子の*?
貪欲なバージョンです。私はそれをサポートする実装を*
1つだけ知っています(非標準に対応する実装に加えて)。しかし、それがあなたが使っている実装のようです。これはast-openであり、私が知っている限り、どのシステムでもデフォルトで提供されていません。また、ksh93以外のast-openツールを含めるか含めるかを考慮することが知られているIllumosも同様です。 GNU実装(オプションを導入したもの)では、is(0または1先行原子)は(0以上の文字)に適用されるため、and(0または1以上の文字)と同じです。sed
-r
-E
sed
sed
-r
.*?
?
.*
.*
.+?
.*