Skip to main content

Utility for manipulating files via regex.

Project description

List, rename and delete files using Python-style regex.

THIS PROGRAM IS STILL IN THE ALPHA TESTING STAGE SO PLEASE ENSURE THAT YOU KEEP REGULAR BACKUPS AND DO NOT USE IT ON ANY IMPORTANT DOCUMENTS OR FILES

Installation

reFILE should be available on the PyPI repository so installing should be as simple as:

$ pip install reFILE

Alternatively you can clone the github repository and use setuptools, like so:

$ git clone https://github.com/Sean1708/reFILE.git
$ python setup.py install

reFILE uses the pathlib module which only has tentative support for Python 2. For this reason, it is reccomended that you use Python 3 to download reFILE. Having said this, however, reFILE should still work on Python 2 installations.

Documentation

The refile command line utility performs three useful tasks on a directory of files; listing files which match a regular expression, renaming files which matche a regular expression and deleting files which match a regular expression.

Usage:

$ refile -h
$ refile [-rqvdli] ls [-h] PATTERN [DIR]
$ refile [-rqvdli] mv [-h] PATTERN REPLACE [DIR]
$ refile [-rqvdli] rm [-h] PATTERN [DIR]

General Usage

To avoid issues with variable expansion and special characters on the command line it is advisable to enclose the regular expression in single quotes:

$ refile ls '.*'

without the quotes this would cause a list of all files whose name starts with a period to be passed to refile which would, unsurprisingly, lead to unexpected behaviour.

If no directory is specified, the current directory is searched. A directory can be specified as an absolute path or a relative one, if an absolute path is used then filenames will be printed as an absolute path and similarly for relative paths. Tilde expansion is performed at the command line but not within the program so wrapping your directory in single quotes is ill-advised.

Options

reFILE uses the idea of global and local options. Global options are available for all subcommands and must be place before the subcommand whereas local options are specific to a subcommand and must be placed after the subcommand. Most options are global, they are:

-h, --help

print a useful help message

-r, --recurse

search directories recursively

-q, --quiet

supress all output except errors

-v, --verbose

print extra information

-d, --directories

rename and delete (if empty) directories

-l, --limit

maximum depth limit when searching recursively

-i, --ignore

ignore any files which match this regex

The only local options are for help on a specific command.

Listing Files

Usage:

$ refile [-rqvdli] ls PATTERN [DIR]

The ls subcommand lists all files in the directory DIR which match the regular expression PATTERN. Internally this is run using the re.search function so the pattern can match any part of the filename, not just the start.

Options

-h, --help

print a useful help message

Renaming Files

Usage:

$ refile [-rqvdli] mv PATTERN REPLACE [DIR]

The mv subcommand renames any file in the directory DIR which matches the regular expression PATTERN to the name RENAME. This is run internally using the re.sub function.

If PATTERN matches more than once in the filename then each match will be replaced by the string REPLACE providing the matches don’t overlap. If the regular expression matches the entire filename then PATTERN and REPLACE must contain groups and backreferences to avoid files overwriting eachother. This is not checked at run-time so it is up to the user to ensure proper usage.

Options

-h, --help

print a useful help message

Deleting Files

Usage:

$ refile [-rqvdli] rm PATTERN [DIR]

The rm subcommand deletes all files in the directory DIR which match regular expression PATTERN. The search is performed identically to the ls subcommand so a good way to ensure that you are deleting the correct files is to run the command as ls first.

Options

-h, --help

print a useful help message

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

reFILE-0.2.tar.gz (19.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

reFILE-0.2-py2.py3-none-any.whl (10.7 kB view details)

Uploaded Python 2Python 3

File details

Details for the file reFILE-0.2.tar.gz.

File metadata

  • Download URL: reFILE-0.2.tar.gz
  • Upload date:
  • Size: 19.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for reFILE-0.2.tar.gz
Algorithm Hash digest
SHA256 459d70e30a0a25652ec3f0f737868eadf51e21ed1c1b2bd574339e54a9ffcba8
MD5 c6ccb25fc3316e25e10abdcfe9bb59e3
BLAKE2b-256 f3448e3b8e8fb1bbd4a8c78bf39ef48eace601f0d1c091f5a963bd2efb7cd0c0

See more details on using hashes here.

File details

Details for the file reFILE-0.2-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for reFILE-0.2-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 3aed658585f1a89f8ef495d6ae4573e965af8c7185047e950a07b62f0002d7dd
MD5 9e10bd2b53835eebc77bba1f670e911d
BLAKE2b-256 08a704e6b710d8c846596a0acaab4beaea496dc7a5c7f5921693ae5ded0c3d70

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page