2025-12-15 21:31:03 +01:00
2025-12-15 21:31:03 +01:00
2025-12-15 21:31:03 +01:00
2024-01-03 09:56:02 +01:00
2025-12-15 21:31:03 +01:00
2024-01-03 10:49:02 +01:00

status-badge

subst - commandline tool to replace file contents or file names

This script can be used to replace something in a file or filename by using perl regular expressions. It can also be used to rename files based on regexes.

Usage

Usage: subst  [-M <perl module>] [-t]  -r 's/old/new/<flags>' [ -r '...', ...] [<file> ...     | /regex/]
       subst  [-M <perl module>] [-tR] -m 's/old/new/<flags>' [ -m '...', ...] [<file|dir> ... | /regex/]

Options:
 -r        replace contents of file(s)
 -m        rename file(s)
 -R        recursive (only used in conjunction with -m)
 -M        load additional perl module to enhance /e functionality.
 -t        test mode, do not overwrite file(s)

Samples:
 - replace "tom" with "mac" in all *.txt files:
   subst -r 's/tom/mac/g' *.txt

 - rename all jpg files containing whitespaces:
   subst -m 's/ /_/g' '/.jpg/'

 - decode base64 encoded contents
   subst -M MIME::Base64 -r 's/([a-zA-Z0-9]*)$/decode_base64($1)/gem' somefile

 - turn every uri into a link
   subst -M "Regexp::Common qw /URI/" -r 's#($RE{URI}{HTTP})#<a href="$a">link</a>#g' somefile

If <file> is -, STDIN will be used as input file, results will be printed
to STDOUT. -t does not apply for STDIN input.

Substitution regex must be perlish. See 'perldoc perlre' for details.

Samples

replace "tom" with "mac" in all *.txt files:

subst -r 's/tom/mac/g' *.txt

rename all jpg files containing whitespaces:

subst -m 's/ /_/g' '/.jpg/'

decode base64 encoded contents

subst -M MIME::Base64 -r 's/([a-zA-Z0-9]*)$/decode_base64($1)/gem' somefile

turn every uri into a link

subst -M "Regexp::Common qw /URI/" -r 's#($RE{URI}{HTTP})#<a href="$a">link</a>#g' somefile

DEPENDENCIES

subst is a perl script and as such needs perl.

Installation

Copy subst to $HOME/bin/subst, that's all. No additional perl modules are required.

Copyleft and License

Copyright (c) 2002-2025 - T.v. Dein

This software is licensed under the GNU GENERAL PUBLIC LICENSE version 3.

Authors

T.v.Dein

Project homepage

https://codeberg.org/scip/subst

Description
No description provided
Readme GPL-3.0 55 KiB
Languages
Perl 100%