A command line tool to apply substitutions to a text file
Project description
apply-subs
A command line tool 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.
Installation
The easiest installation method is
$ pip install apply-subs
In order to install apply-subs
in isolation, use pipx
instead.
Examples
minimal case
$ echo "Lorem ipsum dolor sit amet, consectetur adipiscing elit" > mytext.txt
$ echo '{"Hello": "Lorem ipsum", "goodbye": "adipiscing elit"}' > mysubs.json
$ apply-subs mytext.txt -s mysubs.json
will print the patched content
Hello dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore goodbye.
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
Hashes for apply_subs-0.5.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e38ec0ba83a391b90c40334799aed72800abe135ef460009c3cca0f4c6c21d8a |
|
MD5 | 9fda63e85057b3ae2acfdd0e003feb2c |
|
BLAKE2b-256 | 13eb63bd4bc57ed3c15402f7a0df97dad7dd9908d504171a1b6578e7478823ad |