#!/usr/bin/perl # usage: perl scan2.pl FILELIST > out (Claude Opus 5.5) # Print printable strings that look like build fingerprints. A fast index() prefilter # skips most files: perl 5.005's case-insensitive alternation is slow on a 604e. @lit = ('/.../', 'austin', 'Austin', 'AUSTIN', 'ibm.com', 'IBM.COM', '/afs/', 'funny', '/u/', '/home/', '/build', '/proj', 'sandbox', 'CMVC', 'bull.', '.ibm.', '/wsdb/', 'hursley', 'torolab', '/sb/', '/vikings'); $re = qr{/\.\.\./|austin|ibm\.com|/afs/|/vikings|/sb/|funny|torolab|hursley|/u/[a-z]+/|/home/[a-z]+/|/build|/project|/proj/|sandbox|CMVC|bull\.|\@[a-z]+\.ibm|tor\.ibm|stl\.ibm|rchland|boulder|raleigh|yorktown|watson\.ibm|haifa|/wsdb/}i; open(L, $ARGV[0]) or die; FILE: while ($f = ) { chomp $f; open(F, $f) or next; binmode F; local $/; $d = ; close F; $hit = 0; for (@lit) { if (index($d, $_) >= 0) { $hit = 1; last } } next unless $hit; %seen = (); while ($d =~ /([\x20-\x7e\t]{5,})/g) { $s = $1; next unless $s =~ $re; next if $seen{$s}++; print "$f\t$s\n"; } }