| JP Vossen on 19 Nov 2007 22:48:29 -0000 |
|
Date: Mon, 19 Nov 2007 13:59:05 -0500 From: Jon Nelson <lists@linuxnotes.net> Style note: the IFS=$'' (or presumably IFS=$"") notation is bash and ksh specific. It's not portable, thus using #!/bin/sh will fail on non-Linux systems, and I'm not sure what dash (which is /bin/sh on Ubuntu and soon Debian) will do. It's also unclear to the reader since the script requires bash but specified bourne. The shebang line should be "#!/bin/bash" or for best portability "#!/usr/bin/env bash". Now that I got that off my chest... :-)
$fileLoc = 'file_location_not_found__bummer';
my @strings = `strings $fullPath`;
for (@strings) { $fileLoc = $_ if m/^[a-z]{1}:.*${line}$/; }There's probably a fancier way to do this, but that worked for me using a simple example I made up. The "error checking" if the "grep" doesn't get a hit is a bit primitive. I'd guess there's probably a CPAN module for 'strings' so you could do everything in Perl since the `` sub-shell is ugly. But I'd probably do it using `` also, since it's easy to write, clear to read and doesn't require messing with CPAN. HTH,
JP
----------------------------|:::======|-------------------------------
JP Vossen, CISSP |:::======| jp{at}jpsdomain{dot}org
My Account, My Opinions |=========| http://www.jpsdomain.org/
----------------------------|=========|-------------------------------
Microsoft has single-handedly nullified Moore's Law.
Innate design flaws of Windows make a personal firewall, anti-virus
and anti-malware software mandatory. The resulting software arms race
has effectively flattened Moore's Law on hardware running Windows.
___________________________________________________________________________
Philadelphia Linux Users Group -- http://www.phillylinux.org
Announcements - http://lists.phillylinux.org/mailman/listinfo/plug-announce
General Discussion -- http://lists.phillylinux.org/mailman/listinfo/plug
|
|