我有一个以下格式的文本文件:
211B1 CUSTOMER|UPDATE|
211B2 CUSTOMER|UPDATE|
211B3 CUSTOMER|UPDATE|
211B4 CUSTOMER|UPDATE|
211B5 CUSTOMER|UPDATE|
567FR CUSTOMER|DELETE|
647GI CUSTOMER|DELETE|
Run Code Online (Sandbox Code Playgroud)
我想要一个处理文本文件的脚本并报告以下内容:
我可以编写简单的解决方案,但这对我来说似乎有点复杂,并希望得到帮助或指导.
#!/usr/bin/perl
use strict;
my %actions;
while (<>) {
my ($key, $fld, $action) = /^(\w+) (.+?)\|(.+?)\|/ or die "Failed on line $.!";
push @{$actions{$action}{$fld}}, $key;
}
foreach my $action (keys %actions) {
foreach my $fld (keys %{$actions{$action}}) {
print "\"$action\" for column $fld found for Acct's: " . join(",", @{$actions{$action}{$fld}}), "\n";
}
}
Run Code Online (Sandbox Code Playgroud)
使用如下:
perl collate.pl < input.txt > output.txt
Run Code Online (Sandbox Code Playgroud)