pmv man page on DragonFly

Man page or keyword search:  
man Server   44335 pages
apropos Keyword Search (all sections)
Output format
DragonFly logo
[printable version]

PMV(1)		      User Contributed Perl Documentation		PMV(1)

NAME
       pmv - rename files according to perl code

SYNOPSIS
       pmv [-vqdmMrh] [-b startcode] [-e endcode] [--] 'perl code' <files...>

DESCRIPTION
       pmv allows you to manipulate filenames based on arbitrary perl code.
       Think of it like perl -pe but operating on the filename instead of the
       file contents. It is useful for renaming large numbers of files
       according to arbitrary criteria.

       In the code you write, $_ is set to the current filename, and you
       should change $_ to what you want the new filename to be.  This enables
       you to write quick oneliners like:

	       pmv 's/$/.bak/;' *

       If you want more control, there are three variables defined:

       $file
	   Same as $_, the filename passed in on the command line.

       $path
	   The full pathname, without the filename.

       $name
	   The filename, without any path components.

       You can alter any of these variables to get the same effect as altering
       $_. Which to use is determined as follows:

       1:  If $file has been altered, that is used.

       2:  If $path or $name has been altered, they are joined together then
	   used.

       3:  Otherwise, $_ is used.

       The file pmv-examples.sh contains useful example bourne shell functions
       that use pmv. This is available in the source distribution, and will
       probably be installed under /usr/share/doc/mp3-archive-tools/.

       This file can be sourced by (using source or .) or included in one of
       your startup files (eg /etc/profile or $HOME/.bash_profile for bash(1)
       users.

OPTIONS
       -v  Verbose.

       -q  Quiet (no output). This is the default.

       -d  Dry run. Shows how it would rename files without actually doing it.

       -b startcode
	   Specifies perl code to run once before processing files. Useful for
	   useing modules and doing one-time initialisation.

       -e endcode
	   Specifies perl code to run once after processing files. Useful for
	   summarising data gathered from filenames.

       -m  If the pathname has been altered, create any necessary directories.

       -r  If a file is moved out of a directory, remove any empty
	   directories.

       -M  Same as -m -r.

       -h  Show a brief usage summary.

       --  End of options.

AVAILABLE FUNCTIONS
       If you have sourced pmv-examples.sh (see above>, the following
       functions are available:

       pmv-stdswap
	   Swaps round fields in filenames delimited by " - ".

       pmv-space2_
	   converts all spaces in filename to underscores.

       pmv-_2space
	   Converts all underscores in filename to spaces.

       pmv-fixcaps
	   Crude attempt at capitalising filenames.

       pmv-fixcase
	   Much better attempt at capitalising filenames. This requires the
	   Text::Autoformat module from CPAN (www.cpan.org).

       pmv-number
	   Numbers filenames sequentially.

       pmv-deepen
	   Converts directoriess from "artist - album" to "artist/album"

       pmv-flatten
	   Converts directoriess from "artist/album" to "artist - album"

       pmv-datestamp
	   Insert a datestamp in the form YYYYMMDD at the start of the
	   filename. See below for more details.

EXAMPLES
       Convert all whitespace in all mp3 filenames to underscores
	    pmv 's/\s/_/g;' *.mp3

       Convert the spelling of Color to Colour in all filenames
	    pmv 's/Color/Colour/gi;' *

       Swap round fields in mp3 filenames
	    pmv '$name=~s/(.*) - (.*) - (.*) - (.*)(\..*)/$3 - $1 - $2 - $4$5/;' *.mp3

	   This would convert eg:

	    Primal Scream - Screamadelica - 04 - Higher Than The Sun.mp3

	   to:

	    04 - Primal Scream - Screamadelica - Higher Than The Sun.mp3

       Crudely capitalise every word in all filenames
	    pmv	 '$name=join(" ",map({ucfirst(lc($_));} split(/\s+/,$name)));' *

	   See pmv-fixcase in pmv-examples.sh for a better way to capitalise
	   filenames.

       Add a datestamp to the start of all filenames
	    pmv -b '$d=`date +%Y%d%m`;chomp($d);' '$name = "$d.$name";' *

	   This adds a datestamp in the form YYYYMMDD (eg 20031214) to the
	   start of a filename. Files with datestamps in this form will sort
	   in date order, which is useful for (e.g.) logfiles.

	   The -b code to get the date is run only once, before the files are
	   processed.

	   If you wanted to make this into a shell function, callable by
	   typing "pmv-datestamp files", you would insert the following into
	   your startup files:

	    function pmv-datestamp
	    {
		pmv -b '$d=`date +%Y%d%m`;chomp($d);' '$name = "$d.$name";' "$@"
	    }

BUGS
       Rather similar (I recently discovered) to rename(1), which ships with
       perl. However, pmv provides several features that rename does not have,
       and the pmv- shell functions in pmv-examples.sh are useful, so I
       decided to add it to the mp3-archive-tools(1) package anyway.

SEE ALSO
       perl(1), mp3-archive-tools(1), mp3lint(1)

AUTHOR
       Ian Beckwith <ianb@nessie.mcc.ac.uk>

AVAILABILITY
       pmv is part of the mp3-archive-tools package.

       The latest version can be found at:

       http://nessie.mcc.ac.uk/~ianb/projects/mp3-archive-tools/

COPYRIGHT
       Copyright 2003 Ian Beckwith <ianb@nessie.mcc.ac.uk>

       This program is free software; you can redistribute it and/or modify it
       under the terms of the GNU General Public License as published by the
       Free Software Foundation; either version 2 of the License, or (at your
       option) any later version.

       This program is distributed in the hope that it will be useful, but
       WITHOUT ANY WARRANTY; without even the implied warranty of
       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
       General Public License for more details.

       You should have received a copy of the GNU General Public License along
       with this program; if not, write to the Free Software Foundation, Inc.,
       675 Mass Ave, Cambridge, MA 02139, USA.

perl v5.20.2			  2003-12-12				PMV(1)
[top]

List of man pages available for DragonFly

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net