Isso não é awk
, mas esse script em Perl que lê stdin
deve fazer isso (ou pelo menos fornecer algumas dicas):
while(<>) { # read stdin
chomp;
if (/^([^:]+):(.*)$/) { # match filename
my $file = $1;
my $tail = $2;
while ($tail =~ /\$([A-Za-z0-9_]+)/g) { # match each $variable in the line
my $varname = $1;
open (FILE, $file);
while (<FILE>) {
chomp;
if (/\$$varname\s*=\s*(.*)/ ) { # match the current variable
print "$file: \$$varname = $1\n";
}
}
close (FILE);
}
}
}