Skip to main content

cawspr

Case And Word Separation Preserving Replace (CAWSPR)

What does this do?

This script is as simple as it is stupid: You give it a list of words to replace (e.g. hello world) and a list of words to replace them with (e.g. goodbye world) and it will perform this replacement for various compositions of these words that are common e.g. in programming:

  • separated by spaces: hello world → goodbye world
  • lowercase and separated by underscores (snake_case): hello_world → goodbye_world
  • uppercase and separated by underscores (SCREAMING_SNAKE_CASE): HELLO_WORLD → GOODBYE_WORLD
  • lowercase and separated by hyphens (kebab-case): hello-world → goodbye-world
  • separated only by capitalizing the first letter of each word (CamelCase): HelloWorld → GoodbyeWorld
  • separated only by capitalizing the first letter of each word except the first (lowerCamelCase): helloWorld → goodbyeWorld

The text in which to make these replacements must be piped into the script's standard input and it will output the resulting modified text to standard output.

That's it.

Installation

pip3 install git+https://gitlab.com/smheidrich/cawspr.git

Usage

Replacing all occurrences of hello world and its variants in a file original.txt with goodbye world and writing the result to replaced.txt:

cat original.txt | cawspr 'hello world' 'goodbye world' > replaced.txt

Advertisement

Want to perform such replacements for both file contents and file paths in a directory recursively? Consider full-apply which works great with cawspr!

Similar projects and other resources

  • Softwarerecs StackExchange question in which I asked if anyone knows of an existing CLI tool that does this (perhaps more will crop up in the future)
  • The answers to [this StackOverflow question] are full of links to vim plugins for the same purpose (but I wanted it as a CLI tool):

Metadata

Release files for cawspr 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for cawspr 0.1.0
File Size Uploaded
cawspr-0.1.0.tar.gz 4.0 kB Details

Release files / cawspr-0.1.0.tar.gz

Download URL cawspr-0.1.0.tar.gz
Size 4.0 kB
Tags Source
SHA-256 checksum
How to use checksums
d336ff1b0c0912c75b417f118f502f9a9f07369b3f753c8c1771ac716b38ee4c
BLAKE2b-256 checksum
How to use checksums
7b5ea5007a840318a5d94b5efca6153a294d76db1c6ae5f63902ca572f4d652b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.8

Release history Release notifications | RSS feed

0.1.2

1 release file

0.1.1

1 release file

This release

0.1.0 This release

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page