You are here: Useful script perhaps « HTML « IT news, forums, messages
Useful script perhaps

Posted by Toby Inkster on 08/28/05 01:22

Perl script below runs a particular command on multiple files.

I use this script when I've written a bunch of PHP pages that I need to
upload to a server with no PHP support. I create the PHP pages using
".html" extensions and then run:

folder.pl 'php {} >../{}' *.html

Here is the script:

==================== folder.pl ====================
#!/usr/bin/perl

use Getopt::Long qw(GetOptions);
my $VERSION = '1.1';
my $opts;

GetOptions
(
"usage|help|h" => \$opts{'help'},
"version" => \$opts{'version'},
"verbose|v+" => \$opts{'verbose'}
);

if ($opts{'version'}==1)
{
print "$VERSION\n";
}

&errormessage if ($opts{'help'}==1);

$cmd = shift @ARGV || &errormessage;
$nfiles = 0;

while ($_ = shift @ARGV)
{
$nfiles++;
$c = $cmd;
$c =~ s/\{\}/$_/g;
print '$ ' . $c . "\n"
if ($opts{'verbose'}==1);
system($c);
}


if ($nfiles==0)
{
die "Must specify some files!\n"
}
else
{
print "$nfiles files processed.\n"
if ($opts{'verbose'}==1);
}


sub errormessage
{
print "\n";
print "folder.pl - folds a command onto multiple files\n";
print "Version $VERSION (c) 2005 Toby Inkster\n";
print "License: http://www.gnu.org/copyleft/gpl.html\n\n";
print "USAGE: folder.pl [options] command file [file...]\n\n";
print " \"command\" is a command to run on each file. Use {} to refer to the\n";
print " filename (much like the \"find\" command). You may find it benificial\n";
print " to use \'single quotes\' around the command.\n\n";
print " Many UNIX shells provide similar built-in functionality, but folder.pl\n";
print " has an easier syntax.\n\n";
print "OPTIONS:\n";
print " --verbose -v Be verbose.\n";
print " --usage --help -h Display help message.\n";
print " --version Display version.\n\n";
print "EXAMPLES:\n";
print " folder.pl \'php {} >../{}.html\' *.php\n";
print " folder.pl \'mv {} {}l\' *.htm\n";
print "\n";
exit;
}
===================================================

--
Toby A Inkster BSc (Hons) ARCS
Contact Me ~ http://tobyinkster.co.uk/contact

 

Navigation:

[Reply to this message]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация