A command line tool to apply substitutions to a text file
Project description
apply-subs
A command line application to apply a dictionnary (json) of substitutions to text file corpus. This program is a find-and-replace tool to perform a arbitrarily large set of substitutions in a reproducible fashion.
Disclaimer, this app is far less powerful than sed
and in particular doesn't
support regex replacement. What it offers a simpler interface to make simple
sweeping changes across a whole project in a reproducible fashion.
Installation
The easiest installation method is
$ pip install apply-subs
In order to install apply-subs
in isolation, use pipx
instead.
Examples
apply-subs
uses a json file as input. This file should specify substitutions
as new: old
, where old
can either be a single str, or a list of strings.
minimal case
echo "bunnies and bongos and bananas" > mytext.txt
echo '{"bunnies": "rabbits", "SECRETS": ["bongos", "bananas"]}' > mysubs.json
apply-subs mytext.txt -s mysubs.json
will print the patched content
bunnies and SECRETS and SECRETS
diff mode
Use diff mode (-d/--diff
) to print a diff instead of the end result
--- mytext.txt
+++ mytext.txt (patched)
@@ -1 +1 @@
-Lorem ipsum dolor sit amet, consectetur adipiscing elit
+Hello dolor sit amet, consectetur goodbye
Use -cp/--cdiff/--colored-diff
for a colored output (when supported).
inplace substitutions
-i/--inplace
apply-subs --inplace mytext.txt -s mysubs.json
is equivalent to
apply-subs mytext.txt -s mysubs.json > mytext.txt
target several files in one go
The target
positional argument can consist of a single file (as illustrated above),
or many. This is useful for instance if you need to apply a set of subtitutions to
all files in a project whose name match a regexp.
git ls-files | egrep "(.md|.py)$" | xargs apply-subs -s subsubs.json -i
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file apply_subs-0.5.5.tar.gz
.
File metadata
- Download URL: apply_subs-0.5.5.tar.gz
- Upload date:
- Size: 16.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/53.0.0 requests-toolbelt/0.9.1 tqdm/4.56.2 CPython/3.9.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5dc5c0442eec945ff34f76dd044d83d4afd442fdc70f87a204280fc793db9a6f |
|
MD5 | 95720eafdfe3fb71732aa1fce1707469 |
|
BLAKE2b-256 | 83ea6e0df80e74a60e65c8b5ace51b01e2e49482f02c63ebbb5404e17278cb8d |
File details
Details for the file apply_subs-0.5.5-py3-none-any.whl
.
File metadata
- Download URL: apply_subs-0.5.5-py3-none-any.whl
- Upload date:
- Size: 16.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/53.0.0 requests-toolbelt/0.9.1 tqdm/4.56.2 CPython/3.9.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9ad46e1bb208878b4b252d1f1048a062ea588dfaa88b58e1394e96681367bd0c |
|
MD5 | 7523c8bc1907afbdb4ee6ef940b95286 |
|
BLAKE2b-256 | 70e9d5835110b2cf7d175a9ec5ca9dc5001f2c0cc6ef2916337e714e1215825e |