8000 GitHub - arran4/rntocase: Some utilities to rename files, to upper, lower, title, camel, kebab, darwin case and many more · GitHub
[go: up one dir, main page]

Skip to content
arran4Public

About

Some utilities to rename files, to upper, lower, title, camel, kebab, darwin case and many more

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Repository files navigation

rntocase

A series of files to help you /rename/ files from one type to another.

Command What it does Example Note
rnreverse Reverses a file's name (excluding extension) Hello World.txt -> dlroW olleH.txt
rntocamel Renames a file to camel case Hello World.txt -> HelloWorld.txt
rntoconstant Renames a file to constant case Hello World.txt -> HELLO_WORLD.txt
rntodarwin Renames a file to darwin case Hello World.txt -> Hello_ _World.txt
rntodelimited Renames a file changing the delimiter (think . or some other character) Hello World.txt -> hello.world.txt
rntodot Renames a file to dot case Hello World.txt -> hello.world.txt
rntokebab Renames a file to kebab case Hello World.txt -> hello-world.txt
rntolowerleading Renames a file to lower leading letter case Hello WORLD.txt -> hello WORLD.txt
rntosnake Renames a file to snake case Hello World.txt -> hello_world.txt
rntotitle Renames a file to title case (English) hello of THE world.txt -> Hello of THE World.txt
rntoupperleading Renames a file to upper leading letter case hello world.txt -> Hello world.txt
rntrim Renames a file removing white spaces from either side of the name Hello world .txt -> Hello world.txt
  • Note: this is a work in progress. I will happily change how things work so please do not use in a script (or without verification) unless you're fixing it to a particular version.

Behavior

Rename Safety & Preflight

By default, this tool protects you from data loss. Before modifying the filesystem, it plans the entire operation and verifies that:

  • No two files in the batch map to the same destination.
  • The destination does not already exist (unless it is a case-only rename of the same file on a case-insensitive filesystem).

If any planned operation is unsafe, the tool will abort the batch before making any changes.

If an operation fails during execution (e.g., due to permission errors), the tool will continue renaming the rest of the batch to provide a complete error report, but it will exit with a non-zero status code.

Extension Policy

The renaming algorithm preserves standard file extensions, including common compound extensions like .tar.gz, .tar.bz2, and .tar.xz. It will correctly identify and exclude these extensions from the casing transformation. It also correctly handles extensionless files and dotfiles (e.g., .env).

Recursive Renaming & Filtering

Directory traversal is explicit and opt-in via -R or --recursive. When recursion is enabled, rntocase traverses provided directory roots to discover target files.

  • Explicit and opt-in: Recursive mode must be explicitly requested using -R or --recursive.
  • Files only by default: Recursive mode selects regular files only; directory names are never renamed.
  • Symlink handling: Recursively discovered symlinks are skipped, and directory symlinks are not followed to prevent traversal cycles. Explicitly supplied symlinks are also skipped in recursive mode.
  • Existing non-recursive behavior unchanged: When -R / --recursive is omitted, rntocase preserves its existing non-recursive positional-file behavior.
  • Safe preflight planning: Discovered files are gathered across all provided roots upfront before the safe rename planner runs. Collision preflight checks (detecting multiple files mapping to the same destination or collisions with existing files) validate the entire discovered set before any filesystem modifications occur. If a collision is detected, the operation aborts cleanly with no modifications made.
  • Filtering with doublestar globs: Repeatable --include and --exclude flags allow filtering discovered files. Filters use shell-style doublestar globs rather than regexes, evaluated against slash-normalized paths relative to each supplied directory root.
    • ** semantics match across directory hierarchies (e.g., --exclude '.git/**' skips .git directories and all nested contents, and --include '**/*.jpg' matches .jpg files at any depth).
    • Multiple --include flags behave as alternatives (union): a file is included if it matches any pattern (or if no --include flags are provided).
    • Exclusions take precedence: any file matching an --exclude filter is omitted even if it matches an --include filter.
  • Always inspect with dry-run first: Users should inspect recursive operations with --dry-run before applying changes to disk.

Examples

Preview recursive renaming safely with a dry run:

rntocase snake --dry-run --recursive ./assets

Filter with include and exclude globs:

rntocase kebab --dry-run -R \
  --include '*.jpg' \
  --exclude '.git/**' \
  ./photos

Execute once verified:

rntocase kebab -R \
  --include '*.jpg' \
  --exclude '.git/**' \
  ./photos

Usage

rnacronym

$ rnacronym
Error: No files provided.
Usage: rnacronym [options] <file1> [<file2> ...]

Options:
  -algorithm string
    	Choose the acronym algorithm to use, supported: gobeam. (default "gobeam")
  -dry-run
    	Display the intended changes without renaming.
  -interactive
    	Ask for confirmation before renaming each file.

Conversion Examples:
+-----------+--------------------+-----------------------+-------------------------+--------------------------------+-------------------------+
| ALGORITHM |                    |                       |                         |                                |                         |
+-----------+--------------------+-----------------------+-------------------------+--------------------------------+-------------------------+
|           | Basic Cases        | Hello World           | helloWorld              | HelloWorld                     | Hello_WORLD             |
| gobeam    |                    | HW                    | h                       | H                              | H                       |
|           | Underscore Cases   | __camel_snake_kebab__ | _leading_snake_case_    | __trailing__underscore__       |                         |
| gobeam    |                    | _                     | _                       | _                              |                         |
|           | Hyphen Cases       | --camel-snake-kebab   | -leading-kebab-case-    | --trailing--hyphen--           |                         |
| gobeam    |                    | -                     | -                       | -                              |                         |
|           | Mixed Delimiters   | hello_world-and-kebab | Mixed_Snake-Kebab--Case | UPPER_snake-KEBAB_Case         |                         |
| gobeam    |                    | h                     | M                       | U                              |                         |
|           | Acronym Handling   | ID_NUMBER             | HTTP_Response_Code      | XML_HTTP_REQUEST               | API_Version_2           |
| gobeam    |                    | I                     | H                       | X                              | A                       |
|           | Spaces and Words   |    leading spaces     | trailing spaces         |    both sides                  | This is a test sentence |
| gobeam    |                    | ls                    | ts                      | bs                             | Tiats                   |
|           | Symbols and Random | 123_ABC-xyz--789      | !!special$$characters** | ___!!!___weird___CASE___!!!___ |                         |
| gobeam    |                    | 1                     | !                       | _                              |                         |
+-----------+--------------------+-----------------------+-------------------------+--------------------------------+-------------------------+
exit status 1

rnreverse

$ rnreverse
Error: No files provided.
Usage: rnreverse [options] <file1> [<file2> ...]

Options:
  -algorithm string
    	Choose the reverse algorithm to use, supported: searking. (default "searking")
  -dry-run
    	Display the intended changes without renaming.
  -interactive
    	Ask for confirmation before renaming each file.

Conversion Examples:
+-----------+--------------------+-----------------------+-------------------------+--------------------------------+-------------------------+
| ALGORITHM |                    |                       |                         |                                |                         |
+-----------+--------------------+-----------------------+-------------------------+--------------------------------+-------------------------+
|           | Basic Cases        | Hello World           | helloWorld              | HelloWorld                     | Hello_WORLD             |
| searking  |                    | dlroW olleH           | dlroWolleh              | dlroWolleH                     | DLROW_olleH             |
|           | Underscore Cases   | __camel_snake_kebab__ | _leading_snake_case_    | __trailing__underscore__       |                         |
| searking  |                    | __babek_ekans_lemac__ | _esac_ekans_gnidael_    | __erocsrednu__gniliart__       |                         |
|           | Hyphen Cases       | --camel-snake-kebab   | -leading-kebab-case-    | --trailing--hyphen--           |                         |
| searking  |                    | babek-ekans-lemac--   | -esac-babek-gnidael-    | --nehpyh--gniliart--           |                         |
|           | Mixed Delimiters   | hello_world-and-kebab | Mixed_Snake-Kebab--Case | UPPER_snake-KEBAB_Case         |                         |
| searking  |                    | babek-dna-dlrow_olleh | esaC--babeK-ekanS_dexiM | esaC_BABEK-ekans_REPPU         |                         |
|           | Acronym Handling   | ID_NUMBER             | HTTP_Response_Code      | XML_HTTP_REQUEST               | API_Version_2           |
| searking  |                    | REBMUN_DI             | edoC_esnopseR_PTTH      | TSEUQER_PTTH_LMX               | 2_noisreV_IPA           |
|           | Spaces and Words   |    leading spaces     | trailing spaces         |    both sides                  | This is a test sentence |
| searking  |                    | secaps gnidael        |    secaps gniliart      |    sedis htob                  | ecnetnes tset a si sihT |
|           | Symbols and Random | 123_ABC-xyz--789      | !!special$$characters** | ___!!!___weird___CASE___!!!___ |                         |
| searking  |                    | 987--zyx-CBA_321      | **sretcarahc$$laiceps!! | ___!!!___ESAC___driew___!!!___ |                         |
+-----------+--------------------+-----------------------+-------------------------+--------------------------------+-------------------------+
exit status 1

rntocamel

$ rntocamel
Error: No files provided.
Usage: rntocamel [options] <file1> [<file2> ...]

Options:
  -acronym value
    	Words to consider acronyms and not to assume they are words, ie ID => ID rather than ID => Id
  -acronym-from-file value
    	Words to consider acronyms and not to assume they are words, ie ID => ID rather than ID => Id
  -algorithm string
    	Choose the camel algorithm to use, supported: iancoleman,go-ettle,resenje-snake,tomeh,gobeam,resenje-kebab,golang-cz,lower-iancoleman,lower-searking,searking,ettle,resenje. (default "iancoleman")
  -dry-run
    	Display the intended changes without renaming.
  -interactive
    	Ask for confirmation before renaming each file.
  -word-seperators value
    	Word separators. (gobeam only) Default: "_-. "

Conversion Examples:
+------------------+--------------------+-----------------------+-----------------------------+--------------------------------+-------------------------+
| ALGORITHM        |                    |                       |                             |                                |                         |
+------------------+--------------------+-----------------------+-----------------------------+--------------------------------+-------------------------+
|                  | Basic Cases        | Hello World           | helloWorld                  | HelloWorld                     | Hello_WORLD             |
| ettle            |                    | helloWorld            | helloWorld                  | helloWorld                     | helloWorld              |
| go-ettle         |                    | helloWorld            | helloWorld                  | helloWorld                     | helloWorld              |
| gobeam           |                    | helloWorld            | helloworld                  | helloworld                     | helloWORLD              |
| golang-cz        |                    | helloWorld            | helloWorld                  | helloWorld                     | helloWorld              |
| iancoleman       |                    | HelloWorld            | HelloWorld                  | HelloWorld                     | HelloWorld              |
| lower-iancoleman |                    | helloWorld            | helloWorld                  | helloWorld                     | helloWorld              |
| lower-searking   |                    | hello World           | helloWorld                  | helloWorld                     | hello_WORLD             |
| resenje          |                    | helloWorld            | helloWorld                  | helloWorld                     | helloWorld              |
| resenje-kebab    |                    | Hello-World           | Hello-World                 | Hello-World                    | Hello-World             |
| resenje-snake    |                    | Hello_World           | Hello_World                 | Hello_World                    | Hello_World             |
| searking         |                    | Hello World           | HelloWorld                  | HelloWorld                     | Hello_WORLD             |
| tomeh            |                    | HelloWorld            | helloWorld                  | HelloWorld                     | HelloWORLD              |
|                  | Underscore Cases   | __camel_snake_kebab__ | _leading_snake_case_        | __trailing__underscore__       |                         |
| ettle            |                    | camelSnakeKebab       | leadingSnakeCase            | trailingUnderscore             |                         |
| go-ettle         |                    | camelSnakeKebab       | leadingSnakeCase            | trailingUnderscore             |                         |
| gobeam           |                    | camelSnakeKebab       | leadingSnakeCase            | trailingUnderscore             |                         |
| golang-cz        |                    | camelSnakeKebab       | leadingSnakeCase            | trailingUnderscore             |                         |
| iancoleman       |                    | CamelSnakeKebab       | LeadingSnakeCase            | TrailingUnderscore             |                         |
| lower-iancoleman |                    | CamelSnakeKebab       | LeadingSnakeCase            | TrailingUnderscore             |                         |
| lower-searking   |                    | __camel_snake_kebab__ | _leading_snake_case_        | __trailing__underscore__       |                         |
| resenje          |                    | camelSnakeKebab       | leadingSnakeCase            | trailingUnderscore             |                         |
| resenje-kebab    |                    | Camel-Snake-Kebab     | Leading-Snake-Case          | Trailing-Underscore            |                         |
| resenje-snake    |                    | __Camel_Snake_Kebab__ | _Leading_Snake_Case_        | __Trailing_Underscore__        |                         |
| searking         |                    | __camel_snake_kebab__ | _leading_snake_case_        | __trailing__underscore__       |                         |
| tomeh            |                    | CamelSnakeKebab       | LeadingSnakeCase            | TrailingUnderscore             |                         |
|                  | Hyphen Cases       | --camel-snake-kebab   | -leading-kebab-case-        | --trailing--hyphen--           |                         |
| ettle            |                    | camelSnakeKebab       | leadingKebabCase            | trailingHyphen                 |                         |
| go-ettle         |                    | camelSnakeKebab       | leadingKebabCase            | trailingHyphen                 |                         |
| gobeam           |                    | camelSnakeKebab       | leadingKebabCase            | trailingHyphen                 |                         |
| golang-cz        |                    | camelSnakeKebab       | leadingKebabCase            | trailingHyphen                 |                         |
| iancoleman       |                    | CamelSnakeKebab       | LeadingKebabCase            | TrailingHyphen                 |                         |
| lower-iancoleman |                    | CamelSnakeKebab       | LeadingKebabCase            | TrailingHyphen                 |                         |
| lower-searking   |                    | --camel-snake-kebab   | -leading-kebab-case-        | --trailing--hyphen--           |                         |
| resenje          |                    | camelSnakeKebab       | leadingKebabCase            | trailingHyphen                 |                         |
| resenje-kebab    |                    | --Camel-Snake-Kebab   | -Leading-Kebab-Case-        | --Trailing-Hyphen--            |                         |
| resenje-snake    |                    | Camel_Snake_Kebab     | Leading_Kebab_Case          | Trailing_Hyphen                |                         |
| searking         |                    | --camel-snake-kebab   | -leading-kebab-case-        | --trailing--hyphen--           |                         |
| tomeh            |                    | CamelSnakeKebab       | LeadingKebabCase            | TrailingHyphen                 |                         |
|                  | Mixed Delimiters   | hello_world-and-kebab | Mixed_Snake-Kebab--Case     | UPPER_snake-KEBAB_Case         |                         |
| ettle            |                    | helloWorldAndKebab    | mixedSnakeKebabCase         | upperSnakeKebabCase            |                         |
| go-ettle         |                    | helloWorldAndKebab    | mixedSnakeKebabCase         | upperSnakeKebabCase            |                         |
| gobeam           |                    | helloWorldAndKebab    | mixedSnakeKebabCase         | upperSnakeKEBABCase            |                         |
| golang-cz        |                    | helloWorldAndKebab    | mixedSnakeKebabCase         | upperSnakeKebabCase            |                         |
| iancoleman       |                    | HelloWorldAndKebab    | MixedSnakeKebabCase         | UpperSnakeKebabCase            |                         |
| lower-iancoleman |                    | helloWorldAndKebab    | mixedSnakeKebabCase         | upperSnakeKebabCase            |                         |
| lower-searking   |                    | hello_world-and-kebab | mixed_Snake-Kebab--Case     | uPPER_snake-KEBAB_Case         |                         |
| resenje          |                    | helloWorldAndKebab    | mixedSnakeKebabCase         | upperSnakeKebabCase            |                         |
| resenje-kebab    |                    | Hello-World-And-Kebab | Mixed-Snake-Kebab-Case      | Upper-Snake-Kebab-Case         |                         |
| resenje-snake    |                    | Hello_World_And_Kebab | Mixed_Snake_Kebab_Case      | Upper_Snake_Kebab_Case         |                         |
| searking         |                    | Hello_world-and-kebab | Mixed_Snake-Kebab--Case     | UPPER_snake-KEBAB_Case         |                         |
| tomeh            |                    | helloWorldAndKebab    | MixedSnakeKebabCase         | UPPERSnakeKEBABCase            |                         |
|                  | Acronym Handling   | ID_NUMBER             | HTTP_Response_Code          | XML_HTTP_REQUEST               | API_Version_2           |
| ettle            |                    | idNumber              | httpResponseCode            | xmlHttpRequest                 | apiVersion2             |
| go-ettle         |                    | idNumber              | httpResponseCode            | xmlHTTPRequest                 | apiVersion2             |
| gobeam           |                    | idNUMBER              | httpResponseCode            | xmlHTTPREQUEST                 | apiVersion2             |
| golang-cz        |                    | idNumber              | httpResponseCode            | xmlHttpRequest                 | apiVersion2             |
| iancoleman       |                    | IdNumber              | HttpResponseCode            | XmlHttpRequest                 | ApiVersion2             |
| lower-iancoleman |                    | idNumber              | httpResponseCode            | xmlHttpRequest                 | apiVersion2             |
| lower-searking   |                    | iD_NUMBER             | hTTP_Response_Code          | xML_HTTP_REQUEST               | aPI_Version_2           |
| resenje          |                    | idNumber              | httpResponseCode            | xmlHttpRequest                 | apiVersion2             |
| resenje-kebab    |                    | Id-Number             | Http-Response-Code          | Xml-Http-Request               | Api-Version-2           |
| resenje-snake    |                    | Id_Number             | Http_Response_Code          | Xml_Http_Request               | Api_Version_2           |
| searking         |                    | ID_NUMBER             | HTTP_Response_Code          | XML_HTTP_REQUEST               | API_Version_2           |
| tomeh            |                    | IDNUMBER              | HTTPResponseCode            | XMLHTTPREQUEST                 | APIVersion2             |
|                  | Spaces and Words   |    leading spaces     | trailing spaces             |    both sides                  | This is a test sentence |
| ettle            |                    | leadingSpaces         | trailingSpaces              | bothSides                      | thisIsATestSentence     |
| go-ettle         |                    | leadingSpaces         | trailingSpaces              | bothSides                      | thisIsATestSentence     |
| gobeam           |                    | leadingSpaces         | trailingSpaces              | bothSides                      | thisIsATestSentence     |
| golang-cz        |                    | leadingSpaces         | trailingSpaces              | bothSides                      | thisIsATestSentence     |
| iancoleman       |                    | LeadingSpaces         | TrailingSpaces              | BothSides                      | ThisIsATestSentence     |
| lower-iancoleman |                    | leadingSpaces         | trailingSpaces              | bothSides                      | thisIsATestSentence     |
| lower-searking   |                    |    leading spaces     | trailing spaces             |    both sides                  | this is a test sentence |
| resenje          |                    | leadingSpaces         | trailingSpaces              | bothSides                      | thisIsATestSentence     |
| resenje-kebab    |                    | Leading-Spaces        | Trailing-Spaces             | Both-Sides                     | This-Is-A-Test-Sentence |
| resenje-snake    |                    | Leading_Spaces        | Trailing_Spaces             | Both_Sides                     | This_Is_A_Test_Sentence |
| searking         |                    |    leading spaces     | Trailing spaces             |    both sides                  | This is a test sentence |
| tomeh            |                    | LeadingSpaces         | trailingSpaces              | BothSides                      | ThisIsATestSentence     |
|                  | Symbols and Random | 123_ABC-xyz--789      | !!special$$characters**     | ___!!!___weird___CASE___!!!___ |                         |
| ettle            |                    | 123AbcXyz789          | !!special$$characters**     | !!!WeirdCase!!!                |                         |
| go-ettle         |                    | 123AbcXyz789          | !!special$$characters**     | !!!WeirdCase!!!                |                         |
| gobeam           |                    | 123ABCXyz789          | !!special$$characters**     | !!!WeirdCASE!!!                |                         |
| golang-cz        |                    | 123AbcXyz789          | specialCharacters           | weirdCase                      |                         |
| iancoleman       |                    | 123AbcXyz789          | specialcharacters           | WeirdCase                      |                         |
| lower-iancoleman |                    | 123AbcXyz789          | specialcharacters           | WeirdCase                      |                         |
| lower-searking   |                    | 123_ABC-xyz--789      | !!special$$characters**     | ___!!!___weird___CASE___!!!___ |                         |
| resenje          |                    | 123AbcXyz789          | !!special$$characters**     | !!!WeirdCase!!!                |                         |
| resenje-kebab    |                    | 123-Abc-Xyz-789       | !-!special-$-$characters-** | !!!-Weird-Case-!!!             |                         |
| resenje-snake    |                    | 123_Abc_Xyz_789       | !_!special_$_$characters_** | ___!!!_Weird_Case_!!!___       |                         |
| searking         |                    | 123_ABC-xyz--789      | !!special$$characters**     | ___!!!___weird___CASE___!!!___ |                         |
| tomeh            |                    | 123ABCXyz789          | !!specialCharacters**       | !!!WeirdCASE!!!                |                         |
+------------------+--------------------+-----------------------+-----------------------------+--------------------------------+-------------------------+
exit status 1

rntoconstant

$ rntoconstant
Error: No files provided.
Usage: rntoconstant [options] <file1> [<file2> ...]

Options:
  -acronym value
	Words to consider acronyms and not to assume they are words, ie ID => ID rather than ID => Id
  -acronym-from-file value
	Words to consider acronyms and not to assume they are words, ie ID => ID rather than ID => Id
  -algorithm string
	Choose the constant algorithm to use, supported: iancoleman,ettle,resenje. (default "iancoleman")
  -dry-run
	Display the intended changes without renaming.
  -interactive
	Ask for confirmation before renaming each file.

Conversion Examples:
+------------+--------------------+-----------------------+-----------------------------+--------------------------------+-------------------------+
| ALGORITHM  |                    |                       |                             |                                |                         |
+------------+--------------------+-----------------------+-----------------------------+--------------------------------+-------------------------+
|            | Basic Cases        | Hello World           | helloWorld                  | HelloWorld                     | Hello_WORLD             |
| ettle      |                    | HELLO_WORLD           | HELLO_WORLD                 | HELLO_WORLD                    | HELLO_WORLD             |
| iancoleman |                    | HELLO_WORLD           | HELLO_WORLD                 | HELLO_WORLD                    | HELLO_WORLD             |
| resenje    |                    | HELLO_WORLD           | HELLO_WORLD                 | HELLO_WORLD                    | HELLO_WORLD             |
|            | Underscore Cases   | __camel_snake_kebab__ | _leading_snake_case_        | __trailing__underscore__       |                         |
| ettle      |                    | CAMEL_SNAKE_KEBAB_    | LEADING_SNAKE_CASE_         | TRAILING_UNDERSCORE_           |                         |
| iancoleman |                    | __CAMEL_SNAKE_KEBAB__ | _LEADING_SNAKE_CASE_        | __TRAILING__UNDERSCORE__       |                         |
| resenje    |                    | __CAMEL_SNAKE_KEBAB__ | _LEADING_SNAKE_CASE_        | __TRAILING_UNDERSCORE__        |                         |
|            | Hyphen Cases       | --camel-snake-kebab   | -leading-kebab-case-        | --trailing--hyphen--           |                         |
| ettle      |                    | CAMEL_SNAKE_KEBAB     | LEADING_KEBAB_CASE_         | TRAILING_HYPHEN_               |                         |
| iancoleman |                    | __CAMEL_SNAKE_KEBAB   | _LEADING_KEBAB_CASE_        | __TRAILING__HYPHEN__           |                         |
| resenje    |                    | CAMEL_SNAKE_KEBAB     | LEADING_KEBAB_CASE          | TRAILING_HYPHEN                |                         |
|            | Mixed Delimiters   | hello_world-and-kebab | Mixed_Snake-Kebab--Case     | UPPER_snake-KEBAB_Case         |                         |
| ettle      |                    | HELLO_WORLD_AND_KEBAB | MIXED_SNAKE_KEBAB_CASE      | UPPER_SNAKE_KEBAB_CASE         |                         |
| iancoleman |                    | HELLO_WORLD_AND_KEBAB | MIXED_SNAKE_KEBAB__CASE     | UPPER_SNAKE_KEBAB_CASE         |                         |
| resenje    |                    | HELLO_WORLD_AND_KEBAB | MIXED_SNAKE_KEBAB_CASE      | UPPER_SNAKE_KEBAB_CASE         |                         |
|            | Acronym Handling   | ID_NUMBER             | HTTP_Response_Code          | XML_HTTP_REQUEST               | API_Version_2           |
| ettle      |                    | ID_NUMBER             | HTTP_RESPONSE_CODE          | XML_HTTP_REQUEST               | API_VERSION_2           |
| iancoleman |                    | ID_NUMBER             | HTTP_RESPONSE_CODE          | XML_HTTP_REQUEST               | API_VERSION_2           |
| resenje    |                    | ID_NUMBER             | HTTP_RESPONSE_CODE          | XML_HTTP_REQUEST               | API_VERSION_2           |
|            | Spaces and Words   |    leading spaces     | trailing spaces             |    both sides                  | This is a test sentence |
| ettle      |                    | LEADING_SPACES        | TRAILING_SPACES             | BOTH_SIDES                     | THIS_IS_A_TEST_SENTENCE |
| iancoleman |                    | LEADING_SPACES        | TRAILING_SPACES             | BOTH_SIDES                     | THIS_IS_A_TEST_SENTENCE |
| resenje    |                    | LEADING_SPACES        | TRAILING_SPACES             | BOTH_SIDES                     | THIS_IS_A_TEST_SENTENCE |
|            | Symbols and Random | 123_ABC-xyz--789      | !!special$$characters**     | ___!!!___weird___CASE___!!!___ |                         |
| ettle      |                    | 123_ABC_XYZ_789       | !!SPECIAL$$CHARACTERS**     | !!!_WEIRD_CASE_!!!_            |                         |
| iancoleman |                    | 123_ABC_XYZ__789      | !!SPECIAL$$CHARACTERS**     | ___!!!___WEIRD___CASE___!!!___ |                         |
| resenje    |                    | 123_ABC_XYZ_789       | !_!SPECIAL_$_$CHARACTERS_** | ___!!!_WEIRD_CASE_!!!___       |                         |
+------------+--------------------+-----------------------+-----------------------------+--------------------------------+-------------------------+
exit status 1

rntodarwin

$ rntodarwin
Error: No files provided.
Usage: rntodarwin [options] <file1> [<file2> ...]

Options:
  -algorithm string
    	Choose the darwincase algorithm to use, supported: searking. (default "searking")
  -dry-run
    	Display the intended changes without renaming.
  -interactive
    	Ask for confirmation before renaming each file.

Conversion Examples:
+-----------+--------------------+------------------------------+--------------------------------+--------------------------------------------------------+-----------------------------+
| ALGORITHM |                    |                              |                                |                                                        |                             |
+-----------+--------------------+------------------------------+--------------------------------+--------------------------------------------------------+-----------------------------+
|           | Basic Cases        | Hello World                  | helloWorld                     | HelloWorld                                             | Hello_WORLD                 |
| searking  |                    | Hello_ _World                | Hello_World                    | Hello_World                                            | Hello___W_O_R_L_D           |
|           | Underscore Cases   | __camel_snake_kebab__        | _leading_snake_case_           | __trailing__underscore__                               |                             |
| searking  |                    | ___camel__snake__kebab____   | _leading__snake__case__        | ___trailing____underscore____                          |                             |
|           | Hyphen Cases       | --camel-snake-kebab          | -leading-kebab-case-           | --trailing--hyphen--                                   |                             |
| searking  |                    | -_-Camel_-Snake_-Kebab       | -Leading_-Kebab_-Case_-        | -_-Trailing_-_-Hyphen_-_-                              |                             |
|           | Mixed Delimiters   | hello_world-and-kebab        | Mixed_Snake-Kebab--Case        | UPPER_snake-KEBAB_Case                                 |                             |
| searking  |                    | Hello__world_-And_-Kebab     | Mixed___Snake_-_Kebab_-_-_Case | U_P_P_E_R__snake_-_K_E_B_A_B___Case                    |                             |
|           | Acronym Handling   | ID_NUMBER                    | HTTP_Response_Code             | XML_HTTP_REQUEST                                       | API_Version_2               |
| searking  |                    | I_D___N_U_M_B_E_R            | H_T_T_P___Response___Code      | X_M_L___H_T_T_P___R_E_Q_U_E_S_T                        | A_P_I___Version___2         |
|           | Spaces and Words   |    leading spaces            | trailing spaces                |    both sides                                          | This is a test sentence     |
| searking  |                    |  _ _ Leading_ Spaces         | Trailing_ Spaces_ _ _          |  _ _ Both_ Sides_ _ _                                  | This_ Is_ A_ Test_ Sentence |
|           | Symbols and Random | 123_ABC-xyz--789             | !!special$$characters**        | ___!!!___weird___CASE___!!!___                         |                             |
| searking  |                    | 1_2_3___A_B_C_-Xyz_-_-_7_8_9 | !_!Special_$_$Characters_*_*   | ______!_!_!______weird_______C_A_S_E_______!_!_!______ |                             |
+-----------+--------------------+------------------------------+--------------------------------+--------------------------------------------------------+-----------------------------+
exit status 1

rntodelimited

$ rntodelimited
Error: No files provided.
Usage: rntodelimited [options] <file1> [<file2> ...]

Options:
  -acronym value
    	Words to consider acronyms and not to assume they are words, ie ID => ID rather than ID => Id (iancoleman only)
  -acronym-from-file value
    	Words to consider acronyms and not to assume they are words, ie ID => ID rather than ID => Id (iancoleman only)
  -algorithm string
    	Choose the delimited algorithm to use, supported: searking,gobeam,iancoleman,screaming-iancoleman. (default "iancoleman")
  -delimiter string
    	Delimiter, default '.' but can be any single ascii character. (default ".")
  -dry-run
    	Display the intended changes without renaming.
  -ignore string
    	Other delimiter characters to ignore when parsing
  -input-delimiters string
    	Input's Delimiters, default ' ' but can be multiple ascii character. (searking only) (default ".")
  -interactive
    	Ask for confirmation before renaming each file.
  -word-seperators value
    	Word separators. (gobeam only) Default: "_-. "

Conversion Examples:
+----------------------+--------------------+------------------------------+--------------------------------+--------------------------------------------------------+-----------------------------+
| ALGORITHM            |                    |                              |                                |                                                        |                             |
+----------------------+--------------------+------------------------------+--------------------------------+--------------------------------------------------------+-----------------------------+
|                      | Basic Cases        | Hello World                  | helloWorld                     | HelloWorld                                             | Hello_WORLD                 |
| gobeam               |                    | Hello.World                  | hello.World                    | Hello.World                                            | Hello.WORLD                 |
| iancoleman           |                    | hello.world                  | hello.world                    | hello.world                                            | hello.world                 |
| screaming-iancoleman |                    | HELLO.WORLD                  | HELLO.WORLD                    | HELLO.WORLD                                            | HELLO.WORLD                 |
| searking             |                    | hello. .world                | hello.world                    | hello.world                                            | hello._.w.o.r.l.d           |
|                      | Underscore Cases   | __camel_snake_kebab__        | _leading_snake_case_           | __trailing__underscore__                               |                             |
| gobeam               |                    | camel.snake.kebab            | leading.snake.case             | trailing.underscore                                    |                             |
| iancoleman           |                    | ..camel.snake.kebab..        | .leading.snake.case.           | ..trailing..underscore..                               |                             |
| screaming-iancoleman |                    | ..CAMEL.SNAKE.KEBAB..        | .LEADING.SNAKE.CASE.           | ..TRAILING..UNDERSCORE..                               |                             |
| searking             |                    | _._camel._snake._kebab._._   | _leading._snake._case._        | _._trailing._._underscore._._                          |                             |
|                      | Hyphen Cases       | --camel-snake-kebab          | -leading-kebab-case-           | --trailing--hyphen--                                   |                             |
| gobeam               |                    | camel.snake.kebab            | leading.kebab.case             | trailing.hyphen                                        |                             |
| iancoleman           |                    | ..camel.snake.kebab          | .leading.kebab.case.           | ..trailing..hyphen..                                   |                             |
| screaming-iancoleman |                    | ..CAMEL.SNAKE.KEBAB          | .LEADING.KEBAB.CASE.           | ..TRAILING..HYPHEN..                                   |                             |
| searking             |                    | -.-camel.-snake.-kebab       | -leading.-kebab.-case.-        | -.-trailing.-.-hyphen.-.-                              |                             |
|                      | Mixed Delimiters   | hello_world-and-kebab        | Mixed_Snake-Kebab--Case        | UPPER_snake-KEBAB_Case                                 |                             |
| gobeam               |                    | hello.world.and.kebab        | Mixed.Snake.Kebab.Case         | UPPER.snake.KEBAB.Case                                 |                             |
| iancoleman           |                    | hello.world.and.kebab        | mixed.snake.kebab..case        | upper.snake.kebab.case                                 |                             |
| screaming-iancoleman |                    | HELLO.WORLD.AND.KEBAB        | MIXED.SNAKE.KEBAB..CASE        | UPPER.SNAKE.KEBAB.CASE                                 |                             |
| searking             |                    | hello._world.-and.-kebab     | mixed._.snake.-.kebab.-.-.case | u.p.p.e.r._snake.-.k.e.b.a.b._.case                    |                             |
|                      | Acronym Handling   | ID_NUMBER                    | HTTP_Response_Code             | XML_HTTP_REQUEST                                       | API_Version_2               |
| gobeam               |                    | ID.NUMBER                    | HTTP.Response.Code             | XML.HTTP.REQUEST                                       | API.Version.2               |
| iancoleman           |                    | id.number                    | http.response.code             | xml.http.request                                       | api.version.2               |
| screaming-iancoleman |                    | ID.NUMBER                    | HTTP.RESPONSE.CODE             | XML.HTTP.REQUEST                                       | API.VERSION.2               |
| searking             |                    | i.d._.n.u.m.b.e.r            | h.t.t.p._.response._.code      | x.m.l._.h.t.t.p._.r.e.q.u.e.s.t                        | a.p.i._.version._.2         |
|                      | Spaces and Words   |    leading spaces            | trailing spaces                |    both sides                                          | This is a test sentence     |
| gobeam               |                    | leading.spaces               | trailing.spaces                | both.sides                                             | This.is.a.test.sentence     |
| iancoleman           |                    | leading.spaces               | trailing.spaces                | both.sides                                             | this.is.a.test.sentence     |
| screaming-iancoleman |                    | LEADING.SPACES               | TRAILING.SPACES                | BOTH.SIDES                                             | THIS.IS.A.TEST.SENTENCE     |
| searking             |                    |  . . leading. spaces         | trailing. spaces. . .          |  . . both. sides. . .                                  | this. is. a. test. sentence |
|                      | Symbols and Random | 123_ABC-xyz--789             | !!special$$characters**        | ___!!!___weird___CASE___!!!___                         |                             |
| gobeam               |                    | 123.ABC.xyz.789              | !!special$$characters**        | !!!.weird.CASE.!!!                                     |                             |
| iancoleman           |                    | 123.abc.xyz..789             | !!special$$characters**        | ...!!!...weird...case...!!!...                         |                             |
| screaming-iancoleman |                    | 123.ABC.XYZ..789             | !!SPECIAL$$CHARACTERS**        | ...!!!...WEIRD...CASE...!!!...                         |                             |
| searking             |                    | 1.2.3._.a.b.c.-xyz.-.-.7.8.9 | !.!special.$.$characters.*.*   | _._._.!.!.!._._._weird._._._.c.a.s.e._._._.!.!.!._._._ |                             |
+----------------------+--------------------+------------------------------+--------------------------------+--------------------------------------------------------+-----------------------------+
exit status 1

rntodot

$ rntodot
Error: No files provided.
Usage: rntodot [options] <file1> [<file2> ...]

Options:
  -acronym value
	Words to consider acronyms and not to assume they are words, ie ID => ID rather than ID => Id (iancoleman only)
  -acronym-from-file value
	Words to consider acronyms and not to assume they are words, ie ID => ID rather than ID => Id (iancoleman only)
  -algorithm string
	Choose the dot algorithm to use, supported: iancoleman,screaming-iancoleman,searking,gobeam. (default "iancoleman")
  -dry-run
	Display the intended changes without renaming.
  -ignore string
	Other delimiter characters to ignore when parsing
  -input-delimiters string
	Input's Delimiters, default ' ' but can be multiple ascii character. (searking only)
  -interactive
	Ask for confirmation before renaming each file.
  -word-seperators value
	Word separators. (gobeam only) Default: "_-. "

Conversion Examples:
+----------------------+--------------------+------------------------------+--------------------------------+--------------------------------------------------------+-----------------------------+
| ALGORITHM            |                    |                              |                                |                                                        |                             |
+----------------------+--------------------+------------------------------+--------------------------------+--------------------------------------------------------+-----------------------------+
|                      | Basic Cases        | Hello World                  | helloWorld                     | HelloWorld                                             | Hello_WORLD                 |
| gobeam               |                    | Hello.World                  | hello.World                    | Hello.World                                            | Hello.WORLD                 |
| iancoleman           |                    | hello.world                  | hello.world                    | hello.world                                            | hello.world                 |
| screaming-iancoleman |                    | HELLO.WORLD                  | HELLO.WORLD                    | HELLO.WORLD                                            | HELLO.WORLD                 |
| searking             |                    | hello. .world                | hello.world                    | hello.world                                            | hello._.w.o.r.l.d           |
|                      | Underscore Cases   | __camel_snake_kebab__        | _leading_snake_case_           | __trailing__underscore__                               |                             |
| gobeam               |                    | camel.snake.kebab            | leading.snake.case             | trailing.underscore                                    |                             |
| iancoleman           |                    | ..camel.snake.kebab..        | .leading.snake.case.           | ..trailing..underscore..                               |                             |
| screaming-iancoleman |                    | ..CAMEL.SNAKE.KEBAB..        | .LEADING.SNAKE.CASE.           | ..TRAILING..UNDERSCORE..                               |                             |
| searking             |                    | _._camel._snake._kebab._._   | _leading._snake._case._        | _._trailing._._underscore._._                          |                             |
|                      | Hyphen Cases       | --camel-snake-kebab          | -leading-kebab-case-           | --trailing--hyphen--                                   |                             |
| gobeam               |                    | camel.snake.kebab            | leading.kebab.case             | trailing.hyphen                                        |                             |
| iancoleman           |                    | ..camel.snake.kebab          | .leading.kebab.case.           | ..trailing..hyphen..                                   |                             |
| screaming-iancoleman |                    | ..CAMEL.SNAKE.KEBAB          | .LEADING.KEBAB.CASE.           | ..TRAILING..HYPHEN..                                   |                             |
| searking             |                    | -.-camel.-snake.-kebab       | -leading.-kebab.-case.-        | -.-trailing.-.-hyphen.-.-                              |                             |
|                      | Mixed Delimiters   | hello_world-and-kebab        | Mixed_Snake-Kebab--Case        | UPPER_snake-KEBAB_Case                                 |                             |
| gobeam               |                    | hello.world.and.kebab        | Mixed.Snake.Kebab.Case         | UPPER.snake.KEBAB.Case                                 |                             |
| iancoleman           |                    | hello.world.and.kebab        | mixed.snake.kebab..case        | upper.snake.kebab.case                                 |                             |
| screaming-iancoleman |                    | HELLO.WORLD.AND.KEBAB        | MIXED.SNAKE.KEBAB..CASE        | UPPER.SNAKE.KEBAB.CASE                                 |                             |
| searking             |                    | hello._world.-and.-kebab     | mixed._.snake.-.kebab.-.-.case | u.p.p.e.r._snake.-.k.e.b.a.b._.case                    |                             |
|                      | Acronym Handling   | ID_NUMBER                    | HTTP_Response_Code             | XML_HTTP_REQUEST                                       | API_Version_2               |
| gobeam               |                    | ID.NUMBER                    | HTTP.Response.Code             | XML.HTTP.REQUEST                                       | API.Version.2               |
| iancoleman           |                    | id.number                    | http.response.code             | xml.http.request                                       | api.version.2               |
| screaming-iancoleman |                    | ID.NUMBER                    | HTTP.RESPONSE.CODE             | XML.HTTP.REQUEST                                       | API.VERSION.2               |
| searking             |                    | i.d._.n.u.m.b.e.r            | h.t.t.p._.response._.code      | x.m.l._.h.t.t.p._.r.e.q.u.e.s.t                        | a.p.i._.version._.2         |
|                      | Spaces and Words   |    leading spaces            | trailing spaces                |    both sides                                          | This is a test sentence     |
| gobeam               |                    | leading.spaces               | trailing.spaces                | both.sides                                             | This.is.a.test.sentence     |
| iancoleman           |                    | leading.spaces               | trailing.spaces                | both.sides                                             | this.is.a.test.sentence     |
| screaming-iancoleman |                    | LEADING.SPACES               | TRAILING.SPACES                | BOTH.SIDES                                             | THIS.IS.A.TEST.SENTENCE     |
| searking             |                    |  . . leading. spaces         | trailing. spaces. . .          |  . . both. sides. . .                                  | this. is. a. test. sentence |
|                      | Symbols and Random | 123_ABC-xyz--789             | !!special$$characters**        | ___!!!___weird___CASE___!!!___                         |                             |
| gobeam               |                    | 123.ABC.xyz.789              | !!special$$characters**        | !!!.weird.CASE.!!!                                     |                             |
| iancoleman           |                    | 123.abc.xyz..789             | !!special$$characters**        | ...!!!...weird...case...!!!...                         |                             |
| screaming-iancoleman |                    | 123.ABC.XYZ..789             | !!SPECIAL$$CHARACTERS**        | ...!!!...WEIRD...CASE...!!!...                         |                             |
| searking             |                    | 1.2.3._.a.b.c.-xyz.-.-.7.8.9 | !.!special.$.$characters.*.*   | _._._.!.!.!._._._weird._._._.c.a.s.e._._._.!.!.!._._._ |                             |
+----------------------+--------------------+------------------------------+--------------------------------+--------------------------------------------------------+-----------------------------+
exit status 1

rntokebab

$ rntokebab
Error: No files provided.
Usage: rntokebab [options] <file1> [<file2> ...]

Options:
  -acronym value
    	Words to consider acronyms and not to assume they are words, ie ID => ID rather than ID => Id (iancoleman only)
  -acronym-from-file value
    	Words to consider acronyms and not to assume they are words, ie ID => ID rather than ID => Id (iancoleman only)
  -algorithm string
    	Choose the kebab algorithm to use, supported: iancoleman,screaming-iancoleman,go-ettle,resenje-camel,searking,ettle,ETTLE,resenje,screaming-resenje,resenje-snake,tomeh,golang-cz,gobeam. (default "iancoleman")
  -dry-run
    	Display the intended changes without renaming.
  -interactive
    	Ask for confirmation before renaming each file.
  -word-seperators value
    	Word separators. (gobeam only) Default: "_-. "

Conversion Examples:
+----------------------+--------------------+------------------------------+--------------------------------+--------------------------------------------------------+-----------------------------+
| ALGORITHM            |                    |                              |                                |                                                        |                             |
+----------------------+--------------------+------------------------------+--------------------------------+--------------------------------------------------------+-----------------------------+
|                      | Basic Cases        | Hello World                  | helloWorld                     | HelloWorld                                             | Hello_WORLD                 |
| ETTLE                |                    | HELLO-WORLD                  | HELLO-WORLD                    | HELLO-WORLD                                            | HELLO-WORLD                 |
| ettle                |                    | hello-world                  | hello-world                    | hello-world                                            | hello-world                 |
| go-ettle             |                    | hello-world                  | hello-world                    | hello-world                                            | hello-world                 |
| gobeam               |                    | Hello-World                  | hello-World                    | Hello-World                                            | Hello-WORLD                 |
| golang-cz            |                    | hello-world                  | hello-world                    | hello-world                                            | hello-world                 |
| iancoleman           |                    | hello-world                  | hello-world                    | hello-world                                            | hello-world                 |
| resenje              |                    | hello-world                  | hello-world                    | hello-world                                            | hello-world                 |
| resenje-camel        |                    | Hello-World                  | Hello-World                    | Hello-World                                            | Hello-World                 |
| resenje-snake        |                    | Hello_World                  | Hello_World                    | Hello_World                                            | Hello_World                 |
| screaming-iancoleman |                    | HELLO-WORLD                  | HELLO-WORLD                    | HELLO-WORLD                                            | HELLO-WORLD                 |
| screaming-resenje    |                    | HELLO-WORLD                  | HELLO-WORLD                    | HELLO-WORLD                                            | HELLO-WORLD                 |
| searking             |                    | hello- -world                | hello-world                    | hello-world                                            | hello-_-w-o-r-l-d           |
| tomeh                |                    | hello-world                  | hello-world                    | hello-world                                            | hello-w-o-r-l-d             |
|                      | Underscore Cases   | __camel_snake_kebab__        | _leading_snake_case_           | __trailing__underscore__                               |                             |
| ETTLE                |                    | CAMEL-SNAKE-KEBAB-           | LEADING-SNAKE-CASE-            | TRAILING-UNDERSCORE-                                   |                             |
| ettle                |                    | camel-snake-kebab-           | leading-snake-case-            | trailing-underscore-                                   |                             |
| go-ettle             |                    | camel-snake-kebab            | leading-snake-case             | trailing-underscore                                    |                             |
| gobeam               |                    | camel-snake-kebab            | leading-snake-case             | trailing-underscore                                    |                             |
| golang-cz            |                    | camel-snake-kebab            | leading-snake-case             | trailing-underscore                                    |                             |
| iancoleman           |                    | --camel-snake-kebab--        | -leading-snake-case-           | --trailing--underscore--                               |                             |
| resenje              |                    | camel-snake-kebab            | leading-snake-case             | trailing-underscore                                    |                             |
| resenje-camel        |                    | Camel-Snake-Kebab            | Leading-Snake-Case             | Trailing-Underscore                                    |                             |
| resenje-snake        |                    | __Camel_Snake_Kebab__        | _Leading_Snake_Case_           | __Trailing_Underscore__                                |                             |
| screaming-iancoleman |                    | --CAMEL-SNAKE-KEBAB--        | -LEADING-SNAKE-CASE-           | --TRAILING--UNDERSCORE--                               |                             |
| screaming-resenje    |                    | CAMEL-SNAKE-KEBAB            | LEADING-SNAKE-CASE             | TRAILING-UNDERSCORE                                    |                             |
| searking             |                    | _-_camel-_snake-_kebab-_-_   | _leading-_snake-_case-_        | _-_trailing-_-_underscore-_-_                          |                             |
| tomeh                |                    | camel-snake-kebab            | leading-snake-case             | trailing-underscore                                    |                             |
|                      | Hyphen Cases       | --camel-snake-kebab          | -leading-kebab-case-           | --trailing--hyphen--                                   |                             |
| ETTLE                |                    | CAMEL-SNAKE-KEBAB            | LEADING-KEBAB-CASE-            | TRAILING-HYPHEN-                                       |                             |
| ettle                |                    | camel-snake-kebab            | leading-kebab-case-            | trailing-hyphen-                                       |                             |
| go-ettle             |                    | camel-snake-kebab            | leading-kebab-case             | trailing-hyphen                                        |                             |
| gobeam               |                    | camel-snake-kebab            | leading-kebab-case             | trailing-hyphen                                        |                             |
| golang-cz            |                    | camel-snake-kebab            | leading-kebab-case             | trailing-hyphen                                        |                             |
| iancoleman           |                    | --camel-snake-kebab          | -leading-kebab-case-           | --trailing--hyphen--                                   |                             |
| resenje              |                    | --camel-snake-kebab          | -leading-kebab-case-           | --trailing-hyphen--                                    |                             |
| resenje-camel        |                    | --Camel-Snake-Kebab          | -Leading-Kebab-Case-           | --Trailing-Hyphen--                                    |                             |
| resenje-snake        |                    | Camel_Snake_Kebab            | Leading_Kebab_Case             | Trailing_Hyphen                                        |                             |
| screaming-iancoleman |                    | --CAMEL-SNAKE-KEBAB          | -LEADING-KEBAB-CASE-           | --TRAILING--HYPHEN--                                   |                             |
| screaming-resenje    |                    | --CAMEL-SNAKE-KEBAB          | -LEADING-KEBAB-CASE-           | --TRAILING-HYPHEN--                                    |                             |
| searking             |                    | ---camel--snake--kebab       | -leading--kebab--case--        | ---trailing----hyphen----                              |                             |
| tomeh                |                    | camel-snake-kebab            | leading-kebab-case             | trailing-hyphen                                        |                             |
|                      | Mixed Delimiters   | hello_world-and-kebab        | Mixed_Snake-Kebab--Case        | UPPER_snake-KEBAB_Case                                 |                             |
| ETTLE                |                    | HELLO-WORLD-AND-KEBAB        | MIXED-SNAKE-KEBAB-CASE         | UPPER-SNAKE-KEBAB-CASE                                 |                             |
| ettle                |                    | hello-world-and-kebab        | mixed-snake-kebab-case         | upper-snake-kebab-case                                 |                             |
| go-ettle             |                    | hello-world-and-kebab        | mixed-snake-kebab-case         | upper-snake-kebab-case                                 |                             |
| gobeam               |                    | hello-world-and-kebab        | Mixed-Snake-Kebab-Case         | UPPER-snake-KEBAB-Case                                 |                             |
| golang-cz            |                    | hello-world-and-kebab        | mixed-snake-kebab-case         | upper-snake-kebab-case                                 |                             |
| iancoleman           |                    | hello-world-and-kebab        | mixed-snake-kebab--case        | upper-snake-kebab-case                                 |                             |
| resenje              |                    | hello-world-and-kebab        | mixed-snake-kebab-case         | upper-snake-kebab-case                                 |                             |
| resenje-camel        |                    | Hello-World-And-Kebab        | Mixed-Snake-Kebab-Case         | Upper-Snake-Kebab-Case                                 |                             |
| resenje-snake        |                    | Hello_World_And_Kebab        | Mixed_Snake_Kebab_Case         | Upper_Snake_Kebab_Case                                 |                             |
| screaming-iancoleman |                    | HELLO-WORLD-AND-KEBAB        | MIXED-SNAKE-KEBAB--CASE        | UPPER-SNAKE-KEBAB-CASE                                 |                             |
| screaming-resenje    |                    | HELLO-WORLD-AND-KEBAB        | MIXED-SNAKE-KEBAB-CASE         | UPPER-SNAKE-KEBAB-CASE                                 |                             |
| searking             |                    | hello-_world--and--kebab     | mixed-_-snake---kebab-----case | u-p-p-e-r-_snake---k-e-b-a-b-_-case                    |                             |
| tomeh                |                    | hello-world-and-kebab        | mixed-snake-kebab-case         | u-p-p-e-r-snake-k-e-b-a-b-case                         |                             |
|                      | Acronym Handling   | ID_NUMBER                    | HTTP_Response_Code             | XML_HTTP_REQUEST                                       | API_Version_2               |
| ETTLE                |                    | ID-NUMBER                    | HTTP-RESPONSE-CODE             | XML-HTTP-REQUEST                                       | API-VERSION-2               |
| ettle                |                    | id-number                    | http-response-code             | xml-http-request                                       | api-version-2               |
| go-ettle             |                    | ID-number                    | HTTP-response-code             | XML-HTTP-request                                       | API-version-2               |
| gobeam               |                    | ID-NUMBER                    | HTTP-Response-Code             | XML-HTTP-REQUEST                                       | API-Version-2               |
| golang-cz            |                    | id-number                    | http-response-code             | xml-http-request                                       | api-version-2               |
| iancoleman           |                    | id-number                    | http-response-code             | xml-http-request                                       | api-version-2               |
| resenje              |                    | id-number                    | http-response-code             | xml-http-request                                       | api-version-2               |
| resenje-camel        |                    | Id-Number                    | Http-Response-Code             | Xml-Http-Request                                       | Api-Version-2               |
| resenje-snake        |                    | Id_Number                    | Http_Response_Code             | Xml_Http_Request                                       | Api_Version_2               |
| screaming-iancoleman |                    | ID-NUMBER                    | HTTP-RESPONSE-CODE             | XML-HTTP-REQUEST                                       | API-VERSION-2               |
| screaming-resenje    |                    | ID-NUMBER                    | HTTP-RESPONSE-CODE             | XML-HTTP-REQUEST                                       | API-VERSION-2               |
| searking             |                    | i-d-_-n-u-m-b-e-r            | h-t-t-p-_-response-_-code      | x-m-l-_-h-t-t-p-_-r-e-q-u-e-s-t                        | a-p-i-_-version-_-2         |
| tomeh                |                    | i-d-n-u-m-b-e-r              | h-t-t-p-response-code          | x-m-l-h-t-t-p-r-e-q-u-e-s-t                            | a-p-i-version-2             |
|                      | Spaces and Words   |    leading spaces            | trailing spaces                |    both sides                                          | This is a test sentence     |
| ETTLE                |                    | LEADING-SPACES               | TRAILING-SPACES                | BOTH-SIDES                                             | THIS-IS-A-TEST-SENTENCE     |
| ettle                |                    | leading-spaces               | trailing-spaces                | both-sides                                             | this-is-a-test-sentence     |
| go-ettle             |                    | leading-spaces               | trailing-spaces                | both-sides                                             | this-is-a-test-sentence     |
| gobeam               |                    | leading-spaces               | trailing-spaces                | both-sides                                             | This-is-a-test-sentence     |
| golang-cz            |                    | leading-spaces               | trailing-spaces                | both-sides                                             | this-is-a-test-sentence     |
| iancoleman           |                    | leading-spaces               | trailing-spaces                | both-sides                                             | this-is-a-test-sentence     |
| resenje              |                    | leading-spaces               | trailing-spaces                | both-sides                                             | this-is-a-test-sentence     |
| resenje-camel        |                    | Leading-Spaces               | Trailing-Spaces                | Both-Sides                                             | This-Is-A-Test-Sentence     |
| resenje-snake        |                    | Leading_Spaces               | Trailing_Spaces                | Both_Sides                                             | This_Is_A_Test_Sentence     |
| screaming-iancoleman |                    | LEADING-SPACES               | TRAILING-SPACES                | BOTH-SIDES                                             | THIS-IS-A-TEST-SENTENCE     |
| screaming-resenje    |                    | LEADING-SPACES               | TRAILING-SPACES                | BOTH-SIDES                                             | THIS-IS-A-TEST-SENTENCE     |
| searking             |                    |  - - leading- spaces         | trailing- spaces- - -          |  - - both- sides- - -                                  | this- is- a- test- sentence |
| tomeh                |                    | leading-spaces               | trailing-spaces                | both-sides                                             | this-is-a-test-sentence     |
|                      | Symbols and Random | 123_ABC-xyz--789             | !!special$$characters**        | ___!!!___weird___CASE___!!!___                         |                             |
| ETTLE                |                    | 123-ABC-XYZ-789              | !!SPECIAL$$CHARACTERS**        | !!!-WEIRD-CASE-!!!-                                    |                             |
| ettle                |                    | 123-abc-xyz-789              | !!special$$characters**        | !!!-weird-case-!!!-                                    |                             |
| go-ettle             |                    | 123-abc-xyz-789              | !!special$$characters**        | !!!-weird-case-!!!                                     |                             |
| gobeam               |                    | 123-ABC-xyz-789              | !!special$$characters**        | !!!-weird-CASE-!!!                                     |                             |
| golang-cz            |                    | 123-abc-xyz-789              | special-characters             | weird-case                                             |                             |
| iancoleman           |                    | 123-abc-xyz--789             | !!special$$characters**        | ---!!!---weird---case---!!!---                         |                             |
| resenje              |                    | 123-abc-xyz-789              | !-!special-$-$characters-**    | !!!-weird-case-!!!                                     |                             |
| resenje-camel        |                    | 123-Abc-Xyz-789              | !-!special-$-$characters-**    | !!!-Weird-Case-!!!                                     |                             |
| resenje-snake        |                    | 123_Abc_Xyz_789              | !_!special_$_$characters_**    | ___!!!_Weird_Case_!!!___                               |                             |
| screaming-iancoleman |                    | 123-ABC-XYZ--789             | !!SPECIAL$$CHARACTERS**        | ---!!!---WEIRD---CASE---!!!---                         |                             |
| screaming-resenje    |                    | 123-ABC-XYZ-789              | !-!SPECIAL-$-$CHARACTERS-**    | !!!-WEIRD-CASE-!!!                                     |                             |
| searking             |                    | 1-2-3-_-a-b-c--xyz-----7-8-9 | !-!special-$-$characters-*-*   | _-_-_-!-!-!-_-_-_weird-_-_-_-c-a-s-e-_-_-_-!-!-!-_-_-_ |                             |
| tomeh                |                    | 123-a-b-c-xyz-789            | !!special-characters**         | !!!-weird-c-a-s-e-!!!                                  |                             |
+----------------------+--------------------+------------------------------+--------------------------------+--------------------------------------------------------+-----------------------------+
exit status 1

rntolower

$ rntolower
Error: No files provided.
Usage: rntolower [options] <file1> [<file2> ...]

Options:
  -algorithm string
    	Choose the lowercase algorithm to use, supported: resenje,gobeam,searking,go. (default "resenje")
  -dry-run
    	Display the intended changes without renaming.
  -interactive
    	Ask for confirmation before renaming each file.

Conversion Examples:
+-----------+--------------------+-----------------------+-----------------------------+--------------------------------+-------------------------+
| ALGORITHM |                    |                       |                             |                                |                         |
+-----------+--------------------+-----------------------+-----------------------------+--------------------------------+-------------------------+
|           | Basic Cases        | Hello World           | helloWorld                  | HelloWorld                     | Hello_WORLD             |
| go        |                    | hello world           | helloworld                  | helloworld                     | hello_world             |
| gobeam    |                    | hello world           | helloworld                  | helloworld                     | hello_world             |
| resenje   |                    | hello world           | hello world                 | hello world                    | hello world             |
| searking  |                    | hello world           | helloworld                  | helloworld                     | hello_world             |
|           | Underscore Cases   | __camel_snake_kebab__ | _leading_snake_case_        | __trailing__underscore__       |                         |
| go        |                    | __camel_snake_kebab__ | _leading_snake_case_        | __trailing__underscore__       |                         |
| gobeam    |                    | __camel_snake_kebab__ | _leading_snake_case_        | __trailing__underscore__       |                         |
| resenje   |                    | camel snake kebab     | leading snake case          | trailing underscore            |                         |
| searking  |                    | __camel_snake_kebab__ | _leading_snake_case_        | __trailing__underscore__       |                         |
|           | Hyphen Cases       | --camel-snake-kebab   | -leading-kebab-case-        | --trailing--hyphen--           |                         |
| go        |                    | --camel-snake-kebab   | -leading-kebab-case-        | --trailing--hyphen--           |                         |
| gobeam    |                    | --camel-snake-kebab   | -leading-kebab-case-        | --trailing--hyphen--           |                         |
| resenje   |                    | camel snake kebab     | leading kebab case          | trailing hyphen                |                         |
| searking  |                    | --camel-snake-kebab   | -leading-kebab-case-        | --trailing--hyphen--           |                         |
|           | Mixed Delimiters   | hello_world-and-kebab | Mixed_Snake-Kebab--Case     | UPPER_snake-KEBAB_Case         |                         |
| go        |                    | hello_world-and-kebab | mixed_snake-kebab--case     | upper_snake-kebab_case         |                         |
| gobeam    |                    | hello_world-and-kebab | mixed_snake-kebab--case     | upper_snake-kebab_case         |                         |
| resenje   |                    | hello world and kebab | mixed snake kebab case      | upper snake kebab case         |                         |
| searking  |                    | hello_world-and-kebab | mixed_snake-kebab--case     | upper_snake-kebab_case         |                         |
|           | Acronym Handling   | ID_NUMBER             | HTTP_Response_Code          | XML_HTTP_REQUEST               | API_Version_2           |
| go        |                    | id_number             | http_response_code          | xml_http_request               | api_version_2           |
| gobeam    |                    | id_number             | http_response_code          | xml_http_request               | api_version_2           |
| resenje   |                    | id number             | http response code          | xml http request               | api version 2           |
| searking  |                    | id_number             | http_response_code          | xml_http_request               | api_version_2           |
|           | Spaces and Words   |    leading spaces     | trailing spaces             |    both sides                  | This is a test sentence |
| go        |                    |    leading spaces     | trailing spaces             |    both sides                  | this is a test sentence |
| gobeam    |                    |    leading spaces     | trailing spaces             |    both sides                  | this is a test sentence |
| resenje   |                    | leading spaces        | trailing spaces             | both sides                     | this is a test sentence |
| searking  |                    |    leading spaces     | trailing spaces             |    both sides                  | this is a test sentence |
|           | Symbols and Random | 123_ABC-xyz--789      | !!special$$characters**     | ___!!!___weird___CASE___!!!___ |                         |
| go        |                    | 123_abc-xyz--789      | !!special$$characters**     | ___!!!___weird___case___!!!___ |                         |
| gobeam    |                    | 123_abc-xyz--789      | !!special$$characters**     | ___!!!___weird___case___!!!___ |                         |
| resenje   |                    | 123 abc xyz 789       | ! !special $ $characters ** | !!! weird case !!!             |                         |
| searking  |                    | 123_abc-xyz--789      | !!special$$characters**     | ___!!!___weird___case___!!!___ |                         |
+-----------+--------------------+-----------------------+-----------------------------+--------------------------------+-------------------------+
exit status 1

rntolowerleading

$ rntolowerleading
Error: No files provided.
Usage: rntolowerleading [options] <file1> [<file2> ...]

Options:
  -algorithm string
    	Choose the lowerleading algorithm to use, supported: gobeam,searking. (default "searking")
  -dry-run
    	Display the intended changes without renaming.
  -interactive
    	Ask for confirmation before renaming each file.

Conversion Examples:
+-----------+--------------------+-----------------------+-------------------------+--------------------------------+-------------------------+
| ALGORITHM |                    |                       |                         |                                |                         |
+-----------+--------------------+-----------------------+-------------------------+--------------------------------+-------------------------+
|           | Basic Cases        | Hello World           | helloWorld              | HelloWorld                     | Hello_WORLD             |
| gobeam    |                    | hello World           | helloWorld              | helloWorld                     | hello_WORLD             |
| searking  |                    | hello World           | helloWorld              | helloWorld                     | hello_WORLD             |
|           | Underscore Cases   | __camel_snake_kebab__ | _leading_snake_case_    | __trailing__underscore__       |                         |
| gobeam    |                    | __camel_snake_kebab__ | _leading_snake_case_    | __trailing__underscore__       |                         |
| searking  |                    | __camel_snake_kebab__ | _leading_snake_case_    | __trailing__underscore__       |                         |
|           | Hyphen Cases       | --camel-snake-kebab   | -leading-kebab-case-    | --trailing--hyphen--           |                         |
| gobeam    |                    | --camel-snake-kebab   | -leading-kebab-case-    | --trailing--hyphen--           |                         |
| searking  |                    | --camel-snake-kebab   | -leading-kebab-case-    | --trailing--hyphen--           |                         |
|           | Mixed Delimiters   | hello_world-and-kebab | Mixed_Snake-Kebab--Case | UPPER_snake-KEBAB_Case         |                         |
| gobeam    |                    | hello_world-and-kebab | mixed_Snake-Kebab--Case | uPPER_snake-KEBAB_Case         |                         |
| searking  |                    | hello_world-and-kebab | mixed_Snake-Kebab--Case | uPPER_snake-KEBAB_Case         |                         |
|           | Acronym Handling   | ID_NUMBER             | HTTP_Response_Code      | XML_HTTP_REQUEST               | API_Version_2           |
| gobeam    |                    | iD_NUMBER             | hTTP_Response_Code      | xML_HTTP_REQUEST               | aPI_Version_2           |
| searking  |                    | iD_NUMBER             | hTTP_Response_Code      | xML_HTTP_REQUEST               | aPI_Version_2           |
|           | Spaces and Words   |    leading spaces     | trailing spaces         |    both sides                  | This is a test sentence |
| gobeam    |                    |    leading spaces     | trailing spaces         |    both sides                  | this is a test sentence |
| searking  |                    |    leading spaces     | trailing spaces         |    both sides                  | this is a test sentence |
|           | Symbols and Random | 123_ABC-xyz--789      | !!special$$characters** | ___!!!___weird___CASE___!!!___ |                         |
| gobeam    |                    | 123_ABC-xyz--789      | !!special$$characters** | ___!!!___weird___CASE___!!!___ |                         |
| searking  |                    | 123_ABC-xyz--789      | !!special$$characters** | ___!!!___weird___CASE___!!!___ |                         |
+-----------+--------------------+-----------------------+-------------------------+--------------------------------+-------------------------+
exit status 1

rntopascal

$ rntopascal
Error: No files provided.
Usage: rntopascal [options] <file1> [<file2> ...]

Options:
  -acronym value
    	Words to consider acronyms and not to assume they are words, ie ID => ID rather than ID => Id
  -acronym-from-file value
    	Words to consider acronyms and not to assume they are words, ie ID => ID rather than ID => Id
  -algorithm string
    	Choose the pascal algorithm to use, supported: searKing,ettle,go-ettle,resenje,tomeh,golang-cz,gobeam. (default "ettle")
  -dry-run
    	Display the intended changes without renaming.
  -interactive
    	Ask for confirmation before renaming each file.
  -word-seperators value
    	Word separators. (gobeam only) Default: "_-. "

Conversion Examples:
+-----------+--------------------+-----------------------+-------------------------+--------------------------------+-------------------------+
| ALGORITHM |                    |                       |                         |                                |                         |
+-----------+--------------------+-----------------------+-------------------------+--------------------------------+-------------------------+
|           | Basic Cases        | Hello World           | helloWorld              | HelloWorld                     | Hello_WORLD             |
| ettle     |                    | HelloWorld            | HelloWorld              | HelloWorld                     | HelloWorld              |
| go-ettle  |                    | HelloWorld            | HelloWorld              | HelloWorld                     | HelloWorld              |
| gobeam    |                    | HelloWorld            | HelloWorld              | HelloWorld                     | HelloWORLD              |
| golang-cz |                    | HelloWorld            | HelloWorld              | HelloWorld                     | HelloWorld              |
| resenje   |                    | HelloWorld            | HelloWorld              | HelloWorld                     | HelloWorld              |
| searKing  |                    | Hello World           | HelloWorld              | HelloWorld                     | Hello_WORLD             |
| tomeh     |                    | HelloWorld            | HelloWorld              | HelloWorld                     | HelloWORLD              |
|           | Underscore Cases   | __camel_snake_kebab__ | _leading_snake_case_    | __trailing__underscore__       |                         |
| ettle     |                    | CamelSnakeKebab       | LeadingSnakeCase        | TrailingUnderscore             |                         |
| go-ettle  |                    | CamelSnakeKebab       | LeadingSnakeCase        | TrailingUnderscore             |                         |
| gobeam    |                    | CamelSnakeKebab       | LeadingSnakeCase        | TrailingUnderscore             |                         |
| golang-cz |                    | CamelSnakeKebab       | LeadingSnakeCase        | TrailingUnderscore             |                         |
| resenje   |                    | CamelSnakeKebab       | LeadingSnakeCase        | TrailingUnderscore             |                         |
| searKing  |                    | __camel_snake_kebab__ | _leading_snake_case_    | __trailing__underscore__       |                         |
| tomeh     |                    | CamelSnakeKebab       | LeadingSnakeCase        | TrailingUnderscore             |                         |
|           | Hyphen Cases       | --camel-snake-kebab   | -leading-kebab-case-    | --trailing--hyphen--           |                         |
| ettle     |                    | CamelSnakeKebab       | LeadingKebabCase        | TrailingHyphen                 |                         |
| go-ettle  |                    | CamelSnakeKebab       | LeadingKebabCase        | TrailingHyphen                 |                         |
| gobeam    |                    | CamelSnakeKebab       | LeadingKebabCase        | TrailingHyphen                 |                         |
| golang-cz |                    | CamelSnakeKebab       | LeadingKebabCase        | TrailingHyphen                 |                         |
| resenje   |                    | CamelSnakeKebab       | LeadingKebabCase        | TrailingHyphen                 |                         |
| searKing  |                    | --camel-snake-kebab   | -leading-kebab-case-    | --trailing--hyphen--           |                         |
| tomeh     |                    | CamelSnakeKebab       | LeadingKebabCase        | TrailingHyphen                 |                         |
|           | Mixed Delimiters   | hello_world-and-kebab | Mixed_Snake-Kebab--Case | UPPER_snake-KEBAB_Case         |                         |
| ettle     |                    | HelloWorldAndKebab    | MixedSnakeKebabCase     | UpperSnakeKebabCase            |                         |
| go-ettle  |                    | HelloWorldAndKebab    | MixedSnakeKebabCase     | UpperSnakeKebabCase            |                         |
| gobeam    |                    | HelloWorldAndKebab    | MixedSnakeKebabCase     | UPPERSnakeKEBABCase            |                         |
| golang-cz |                    | HelloWorldAndKebab    | MixedSnakeKebabCase     | UpperSnakeKebabCase            |                         |
| resenje   |                    | HelloWorldAndKebab    | MixedSnakeKebabCase     | UpperSnakeKebabCase            |                         |
| searKing  |                    | Hello_world-and-kebab | Mixed_Snake-Kebab--Case | UPPER_snake-KEBAB_Case         |                         |
| tomeh     |                    | HelloWorldAndKebab    | MixedSnakeKebabCase     | UPPERSnakeKEBABCase            |                         |
|           | Acronym Handling   | ID_NUMBER             | HTTP_Response_Code      | XML_HTTP_REQUEST               | API_Version_2           |
| ettle     |                    | IdNumber              | HttpResponseCode        | XmlHttpRequest                 | ApiVersion2             |
| go-ettle  |                    | IDNumber              | HTTPResponseCode        | XMLHTTPRequest                 | APIVersion2             |
| gobeam    |                    | IDNUMBER              | HTTPResponseCode        | XMLHTTPREQUEST                 | APIVersion2             |
| golang-cz |                    | IdNumber              | HttpResponseCode        | XmlHttpRequest                 | ApiVersion2             |
| resenje   |                    | IdNumber              | HttpResponseCode        | XmlHttpRequest                 | ApiVersion2             |
| searKing  |                    | ID_NUMBER             | HTTP_Response_Code      | XML_HTTP_REQUEST               | API_Version_2           |
| tomeh     |                    | IDNUMBER              | HTTPResponseCode        | XMLHTTPREQUEST                 | APIVersion2             |
|           | Spaces and Words   |    leading spaces     | trailing spaces         |    both sides                  | This is a test sentence |
| ettle     |                    | LeadingSpaces         | TrailingSpaces          | BothSides                      | ThisIsATestSentence     |
| go-ettle  |                    | LeadingSpaces         | TrailingSpaces          | BothSides                      | ThisIsATestSentence     |
| gobeam    |                    | LeadingSpaces         | TrailingSpaces          | BothSides                      | ThisIsATestSentence     |
| golang-cz |                    | LeadingSpaces         | TrailingSpaces          | BothSides                      | ThisIsATestSentence     |
| resenje   |                    | LeadingSpaces         | TrailingSpaces          | BothSides                      | ThisIsATestSentence     |
| searKing  |                    |    leading spaces     | Trailing spaces         |    both sides                  | This is a test sentence |
| tomeh     |                    | LeadingSpaces         | TrailingSpaces          | BothSides                      | ThisIsATestSentence     |
|           | Symbols and Random | 123_ABC-xyz--789      | !!special$$characters** | ___!!!___weird___CASE___!!!___ |                         |
| ettle     |                    | 123AbcXyz789          | !!special$$characters** | !!!WeirdCase!!!                |                         |
| go-ettle  |                    | 123AbcXyz789          | !!special$$characters** | !!!WeirdCase!!!                |                         |
| gobeam    |                    | 123ABCXyz789          | !!special$$characters** | !!!WeirdCASE!!!                |                         |
| golang-cz |                    | 123AbcXyz789          | SpecialCharacters       | WeirdCase                      |                         |
| resenje   |                    | 123AbcXyz789          | !!special$$characters** | !!!WeirdCase!!!                |                         |
| searKing  |                    | 123_ABC-xyz--789      | !!special$$characters** | ___!!!___weird___CASE___!!!___ |                         |
| tomeh     |                    | 123ABCXyz789          | !!SpecialCharacters**   | !!!WeirdCASE!!!                |                         |
+-----------+--------------------+-----------------------+-------------------------+--------------------------------+-------------------------+
exit status 1

rntosnake

$ rntosnake
Error: No files provided.
Usage: rntosnake [options] <file1> [<file2> ...]

Options:
  -acronym value
    	Words to consider acronyms and not to assume they are words, ie ID => ID rather than ID => Id
  -acronym-from-file value
    	Words to consider acronyms and not to assume they are words, ie ID => ID rather than ID => Id
  -algorithm string
    	Choose the snake algorithm to use, supported: resenje,screaming-resenje,tomeh,screaming-iancoleman,lowercase-searking,ettle,go-ettle,ETTLE,golang-cz,gobeam,iancoleman,searking. (default "iancoleman")
  -dry-run
    	Display the intended changes without renaming.
  -interactive
    	Ask for confirmation before renaming each file.
  -word-seperators value
    	Word separators. (gobeam only) Default: "_-. "

Conversion Examples:
+----------------------+--------------------+----------------------------+------------------------------+----------------------------------+-----------------------------+
| ALGORITHM            |                    |                            |                              |                                  |                             |
+----------------------+--------------------+----------------------------+------------------------------+----------------------------------+-----------------------------+
|                      | Basic Cases        | Hello World                | helloWorld                   | HelloWorld                       | Hello_WORLD                 |
| ETTLE                |                    | HELLO_WORLD                | HELLO_WORLD                  | HELLO_WORLD                      | HELLO_WORLD                 |
| ettle                |                    | hello_world                | hello_world                  | hello_world                      | hello_world                 |
| go-ettle             |                    | hello_world                | hello_world                  | hello_world                      | hello_world                 |
| gobeam               |                    | Hello_World                | hello_World                  | Hello_World                      | Hello_WORLD                 |
| golang-cz            |                    | hello_world                | hello_world                  | hello_world                      | hello_world                 |
| iancoleman           |                    | hello_world                | hello_world                  | hello_world                      | hello_world                 |
| lowercase-searking   |                    | hello_ _world              | hello_world                  | hello_world                      | hello_w_o_r_l_d             |
| resenje              |                    | hello_world                | hello_world                  | hello_world                      | hello_world                 |
| screaming-iancoleman |                    | HELLO_WORLD                | HELLO_WORLD                  | HELLO_WORLD                      | HELLO_WORLD                 |
| screaming-resenje    |                    | HELLO_WORLD                | HELLO_WORLD                  | HELLO_WORLD                      | HELLO_WORLD                 |
| searking             |                    | hello_ _world              | hello_world                  | hello_world                      | hello_w_o_r_l_d             |
| tomeh                |                    | hello_world                | hello_world                  | hello_world                      | hello_w_o_r_l_d             |
|                      | Underscore Cases   | __camel_snake_kebab__      | _leading_snake_case_         | __trailing__underscore__         |                             |
| ETTLE                |                    | CAMEL_SNAKE_KEBAB_         | LEADING_SNAKE_CASE_          | TRAILING_UNDERSCORE_             |                             |
| ettle                |                    | camel_snake_kebab_         | leading_snake_case_          | trailing_underscore_             |                             |
| go-ettle             |                    | camel_snake_kebab_         | leading_snake_case_          | trailing_underscore_             |                             |
| gobeam               |                    | camel_snake_kebab          | leading_snake_case           | trailing_underscore              |                             |
| golang-cz            |                    | camel_snake_kebab          | leading_snake_case           | trailing_underscore              |                             |
| iancoleman           |                    | __camel_snake_kebab__      | _leading_snake_case_         | __trailing__underscore__         |                             |
| lowercase-searking   |                    | x_camel_snake_kebab        | x_leading_snake_case__       | x_trailing_underscore            |                             |
| resenje              |                    | __camel_snake_kebab__      | _leading_snake_case_         | __trailing_underscore__          |                             |
| screaming-iancoleman |                    | __CAMEL_SNAKE_KEBAB__      | _LEADING_SNAKE_CASE_         | __TRAILING__UNDERSCORE__         |                             |
| screaming-resenje    |                    | __CAMEL_SNAKE_KEBAB__      | _LEADING_SNAKE_CASE_         | __TRAILING_UNDERSCORE__          |                             |
| searking             |                    | x_camel_snake_kebab        | x_leading_snake_case__       | x_trailing_underscore            |                             |
| tomeh                |                    | camel_snake_kebab          | leading_snake_case           | trailing_underscore              |                             |
|                      | Hyphen Cases       | --camel-snake-kebab        | -leading-kebab-case-         | --trailing--hyphen--             |                             |
| ETTLE                |                    | CAMEL_SNAKE_KEBAB          | LEADING_KEBAB_CASE_          | TRAILING_HYPHEN_                 |                             |
| ettle                |                    | camel_snake_kebab          | leading_kebab_case_          | trailing_hyphen_                 |                             |
| go-ettle             |                    | camel_snake_kebab          | leading_kebab_case_          | trailing_hyphen_                 |                             |
| gobeam               |                    | camel_snake_kebab          | leading_kebab_case           | trailing_hyphen                  |                             |
| golang-cz            |                    | camel_snake_kebab          | leading_kebab_case           | trailing_hyphen                  |                             |
| iancoleman           |                    | __camel_snake_kebab        | _leading_kebab_case_         | __trailing__hyphen__             |                             |
| lowercase-searking   |                    | -_-camel_-snake_-kebab     | -leading_-kebab_-case_-      | -_-trailing_-_-hyphen_-_-        |                             |
| resenje              |                    | camel_snake_kebab          | leading_kebab_case           | trailing_hyphen                  |                             |
| screaming-iancoleman |                    | __CAMEL_SNAKE_KEBAB        | _LEADING_KEBAB_CASE_         | __TRAILING__HYPHEN__             |                             |
| screaming-resenje    |                    | CAMEL_SNAKE_KEBAB          | LEADING_KEBAB_CASE           | TRAILING_HYPHEN                  |                             |
| searking             |                    | -_-camel_-snake_-kebab     | -leading_-kebab_-case_-      | -_-trailing_-_-hyphen_-_-        |                             |
| tomeh                |                    | camel_snake_kebab          | leading_kebab_case           | trailing_hyphen                  |                             |
|                      | Mixed Delimiters   | hello_world-and-kebab      | Mixed_Snake-Kebab--Case      | UPPER_snake-KEBAB_Case           |                             |
| ETTLE                |                    | HELLO_WORLD_AND_KEBAB      | MIXED_SNAKE_KEBAB_CASE       | UPPER_SNAKE_KEBAB_CASE           |                             |
| ettle                |                    | hello_world_and_kebab      | mixed_snake_kebab_case       | upper_snake_kebab_case           |                             |
| go-ettle             |                    | hello_world_and_kebab      | mixed_snake_kebab_case       | upper_snake_kebab_case           |                             |
| gobeam               |                    | hello_world_and_kebab      | Mixed_Snake_Kebab_Case       | UPPER_snake_KEBAB_Case           |                             |
| golang-cz            |                    | hello_world_and_kebab      | mixed_snake_kebab_case       | upper_snake_kebab_case           |                             |
| iancoleman           |                    | hello_world_and_kebab      | mixed_snake_kebab__case      | upper_snake_kebab_case           |                             |
| lowercase-searking   |                    | hello_world_-and_-kebab    | mixed_snake_-_kebab_-_-_case | u_p_p_e_r_snake_-_k_e_b_a_b_case |                             |
| resenje              |                    | hello_world_and_kebab      | mixed_snake_kebab_case       | upper_snake_kebab_case           |                             |
| screaming-iancoleman |                    | HELLO_WORLD_AND_KEBAB      | MIXED_SNAKE_KEBAB__CASE      | UPPER_SNAKE_KEBAB_CASE           |                             |
| screaming-resenje    |                    | HELLO_WORLD_AND_KEBAB      | MIXED_SNAKE_KEBAB_CASE       | UPPER_SNAKE_KEBAB_CASE           |                             |
| searking             |                    | hello_world_-and_-kebab    | mixed_snake_-_kebab_-_-_case | u_p_p_e_r_snake_-_k_e_b_a_b_case |                             |
| tomeh                |                    | hello_world_and_kebab      | mixed_snake_kebab_case       | u_p_p_e_r_snake_k_e_b_a_b_case   |                             |
|                      | Acronym Handling   | ID_NUMBER                  | HTTP_Response_Code           | XML_HTTP_REQUEST                 | API_Version_2               |
| ETTLE                |                    | ID_NUMBER                  | HTTP_RESPONSE_CODE           | XML_HTTP_REQUEST                 | API_VERSION_2               |
| ettle                |                    | id_number                  | http_response_code           | xml_http_request                 | api_version_2               |
| go-ettle             |                    | id_number                  | http_response_code           | xml_http_request                 | api_version_2               |
| gobeam               |                    | ID_NUMBER                  | HTTP_Response_Code           | XML_HTTP_REQUEST                 | API_Version_2               |
| golang-cz            |                    | id_number                  | http_response_code           | xml_http_request                 | api_version_2               |
| iancoleman           |                    | id_number                  | http_response_code           | xml_http_request                 | api_version_2               |
| lowercase-searking   |                    | i_d_n_u_m_b_e_r            | h_t_t_p_response_code        | x_m_l_h_t_t_p_r_e_q_u_e_s_t      | a_p_i_version_2             |
| resenje              |                    | id_number                  | http_response_code           | xml_http_request                 | api_version_2               |
| screaming-iancoleman |                    | ID_NUMBER                  | HTTP_RESPONSE_CODE           | XML_HTTP_REQUEST                 | API_VERSION_2               |
| screaming-resenje    |                    | ID_NUMBER                  | HTTP_RESPONSE_CODE           | XML_HTTP_REQUEST                 | API_VERSION_2               |
| searking             |                    | i_d_n_u_m_b_e_r            | h_t_t_p_response_code        | x_m_l_h_t_t_p_r_e_q_u_e_s_t      | a_p_i_version_2             |
| tomeh                |                    | i_d_n_u_m_b_e_r            | h_t_t_p_response_code        | x_m_l_h_t_t_p_r_e_q_u_e_s_t      | a_p_i_version_2             |
|                      | Spaces and Words   |    leading spaces          | trailing spaces              |    both sides                    | This is a test sentence     |
| ETTLE                |                    | LEADING_SPACES             | TRAILING_SPACES              | BOTH_SIDES                       | THIS_IS_A_TEST_SENTENCE     |
| ettle                |                    | leading_spaces             | trailing_spaces              | both_sides                       | this_is_a_test_sentence     |
| go-ettle             |                    | leading_spaces             | trailing_spaces              | both_sides                       | this_is_a_test_sentence     |
| gobeam               |                    | leading_spaces             | trailing_spaces              | both_sides                       | This_is_a_test_sentence     |
| golang-cz            |                    | leading_spaces             | trailing_spaces              | both_sides                       | this_is_a_test_sentence     |
| iancoleman           |                    | leading_spaces             | trailing_spaces              | both_sides                       | this_is_a_test_sentence     |
| lowercase-searking   |                    |  _ _ leading_ spaces       | trailing_ spaces_ _ _        |  _ _ both_ sides_ _ _            | this_ is_ a_ test_ sentence |
| resenje              |                    | leading_spaces             | trailing_spaces              | both_sides                       | this_is_a_test_sentence     |
| screaming-iancoleman |                    | LEADING_SPACES             | TRAILING_SPACES              | BOTH_SIDES                       | THIS_IS_A_TEST_SENTENCE     |
| screaming-resenje    |                    | LEADING_SPACES             | TRAILING_SPACES              | BOTH_SIDES                       | THIS_IS_A_TEST_SENTENCE     |
| searking             |                    |  _ _ leading_ spaces       | trailing_ spaces_ _ _        |  _ _ both_ sides_ _ _            | this_ is_ a_ test_ sentence |
| tomeh                |                    | leading_spaces             | trailing_spaces              | both_sides                       | this_is_a_test_sentence     |
|                      | Symbols and Random | 123_ABC-xyz--789           | !!special$$characters**      | ___!!!___weird___CASE___!!!___   |                             |
| ETTLE                |                    | 123_ABC_XYZ_789            | !!SPECIAL$$CHARACTERS**      | !!!_WEIRD_CASE_!!!_              |                             |
| ettle                |                    | 123_abc_xyz_789            | !!special$$characters**      | !!!_weird_case_!!!_              |                             |
| go-ettle             |                    | 123_abc_xyz_789            | !!special$$characters**      | !!!_weird_case_!!!_              |                             |
| gobeam               |                    | 123_ABC_xyz_789            | !!special$$characters**      | !!!_weird_CASE_!!!               |                             |
| golang-cz            |                    | 123_abc_xyz_789            | special_characters           | weird_case                       |                             |
| iancoleman           |                    | 123_abc_xyz__789           | !!special$$characters**      | ___!!!___weird___case___!!!___   |                             |
| lowercase-searking   |                    | 1_2_3_a_b_c_-xyz_-_-_7_8_9 | !_!special_$_$characters_*_* | x_!_!_!_weird_c_a_s_e_!_!_!      |                             |
| resenje              |                    | 123_abc_xyz_789            | !_!special_$_$characters_**  | ___!!!_weird_case_!!!___         |                             |
| screaming-iancoleman |                    | 123_ABC_XYZ__789           | !!SPECIAL$$CHARACTERS**      | ___!!!___WEIRD___CASE___!!!___   |                             |
| screaming-resenje    |                    | 123_ABC_XYZ_789            | !_!SPECIAL_$_$CHARACTERS_**  | ___!!!_WEIRD_CASE_!!!___         |                             |
| searking             |                    | 1_2_3_a_b_c_-xyz_-_-_7_8_9 | !_!special_$_$characters_*_* | x_!_!_!_weird_c_a_s_e_!_!_!      |                             |
| tomeh                |                    | 123_a_b_c_xyz_789          | !!special_characters**       | !!!_weird_c_a_s_e_!!!            |                             |
+----------------------+--------------------+----------------------------+------------------------------+----------------------------------+-----------------------------+
exit status 1

rntotitle

$ rntotitle
Error: No files provided.
Usage: rntotitle [options] <file1> [<file2> ...]

Options:
  -algorithm string
    	Choose the titlecase algorithm to use, supported: revett,searking,go,resenje,gobeam. (default "revett")
  -dry-run
    	Display the intended changes without renaming.
  -interactive
    	Ask for confirmation before renaming each file.

Conversion Examples:
+-----------+--------------------+-----------------------+-----------------------------+--------------------------------+-------------------------+
| ALGORITHM |                    |                       |                             |                                |                         |
+-----------+--------------------+-----------------------+-----------------------------+--------------------------------+-------------------------+
|           | Basic Cases        | Hello World           | helloWorld                  | HelloWorld                     | Hello_WORLD             |
| go        |                    | HELLO WORLD           | HELLOWORLD                  | HELLOWORLD                     | HELLO_WORLD             |
| gobeam    |                    | Hello World           | Helloworld                  | Helloworld                     | Hello_world             |
| resenje   |                    | Hello World           | Hello World                 | Hello World                    | Hello World             |
| revett    |                    | Hello World           | Helloworld                  | Helloworld                     | Hello_world             |
| searking  |                    | HELLO WORLD           | HELLOWORLD                  | HELLOWORLD                     | HELLO_WORLD             |
|           | Underscore Cases   | __camel_snake_kebab__ | _leading_snake_case_        | __trailing__underscore__       |                         |
| go        |                    | __CAMEL_SNAKE_KEBAB__ | _LEADING_SNAKE_CASE_        | __TRAILING__UNDERSCORE__       |                         |
| gobeam    |                    | __camel_snake_kebab__ | _leading_snake_case_        | __trailing__underscore__       |                         |
| resenje   |                    | Camel Snake Kebab     | Leading Snake Case          | Trailing Underscore            |                         |
| revett    |                    | __camel_snake_kebab__ | _leading_snake_case_        | __trailing__underscore__       |                         |
| searking  |                    | __CAMEL_SNAKE_KEBAB__ | _LEADING_SNAKE_CASE_        | __TRAILING__UNDERSCORE__       |                         |
|           | Hyphen Cases       | --camel-snake-kebab   | -leading-kebab-case-        | --trailing--hyphen--           |                         |
| go        |                    | --CAMEL-SNAKE-KEBAB   | -LEADING-KEBAB-CASE-        | --TRAILING--HYPHEN--           |                         |
| gobeam    |                    | --camel-snake-kebab   | -leading-kebab-case-        | --trailing--hyphen--           |                         |
| resenje   |                    | Camel Snake Kebab     | Leading Kebab Case          | Trailing Hyphen                |                         |
| revett    |                    | --camel-snake-kebab   | -leading-kebab-case-        | --trailing--hyphen--           |                         |
| searking  |                    | --CAMEL-SNAKE-KEBAB   | -LEADING-KEBAB-CASE-        | --TRAILING--HYPHEN--           |                         |
|           | Mixed Delimiters   | hello_world-and-kebab | Mixed_Snake-Kebab--Case     | UPPER_snake-KEBAB_Case         |                         |
| go        |                    | HELLO_WORLD-AND-KEBAB | MIXED_SNAKE-KEBAB--CASE     | UPPER_SNAKE-KEBAB_CASE         |                         |
| gobeam    |                    | Hello_world-and-kebab | Mixed_snake-kebab--case     | Upper_snake-kebab_case         |                         |
| resenje   |                    | Hello World And Kebab | Mixed Snake Kebab Case      | Upper Snake Kebab Case         |                         |
| revett    |                    | Hello_world-and-kebab | Mixed_snake-kebab--case     | Upper_snake-kebab_case         |                         |
| searking  |                    | HELLO_WORLD-AND-KEBAB | MIXED_SNAKE-KEBAB--CASE     | UPPER_SNAKE-KEBAB_CASE         |                         |
|           | Acronym Handling   | ID_NUMBER             | HTTP_Response_Code          | XML_HTTP_REQUEST               | API_Version_2           |
| go        |                    | ID_NUMBER             | HTTP_RESPONSE_CODE          | XML_HTTP_REQUEST               | API_VERSION_2           |
| gobeam    |                    | Id_number             | Http_response_code          | Xml_http_request               | Api_version_2           |
| resenje   |                    | Id Number             | Http Response Code          | Xml Http Request               | Api Version 2           |
| revett    |                    | ID_NUMBER             | Http_response_code          | XML_HTTP_REQUEST               | Api_version_2           |
| searking  |                    | ID_NUMBER             | HTTP_RESPONSE_CODE          | XML_HTTP_REQUEST               | API_VERSION_2           |
|           | Spaces and Words   |    leading spaces     | trailing spaces             |    both sides                  | This is a test sentence |
| go        |                    |    LEADING SPACES     | TRAILING SPACES             |    BOTH SIDES                  | THIS IS A TEST SENTENCE |
| gobeam    |                    | !!!Error!!!           | !!!Error!!!                 | !!!Error!!!                    | This Is A Test Sentence |
| resenje   |                    | Leading Spaces        | Trailing Spaces             | Both Sides                     | This Is A Test Sentence |
| revett    |                    | Leading Spaces        | Trailing Spaces             | Both Sides                     | This Is a Test Sentence |
| searking  |                    |    LEADING SPACES     | TRAILING SPACES             |    BOTH SIDES                  | THIS IS A TEST SENTENCE |
|           | Symbols and Random | 123_ABC-xyz--789      | !!special$$characters**     | ___!!!___weird___CASE___!!!___ |                         |
| go        |                    | 123_ABC-XYZ--789      | !!SPECIAL$$CHARACTERS**     | ___!!!___WEIRD___CASE___!!!___ |                         |
| gobeam    |                    | 123_abc-xyz--789      | !!special$$characters**     | ___!!!___weird___case___!!!___ |                         |
| resenje   |                    | 123 Abc Xyz 789       | ! !special $ $characters ** | !!! Weird Case !!!             |                         |
| revett    |                    | 123_abc-xyz--789      | !!special$$characters**     | ___!!!___weird___case___!!!___ |                         |
| searking  |                    | 123_ABC-XYZ--789      | !!SPECIAL$$CHARACTERS**     | ___!!!___WEIRD___CASE___!!!___ |                         |
+-----------+--------------------+-----------------------+-----------------------------+--------------------------------+-------------------------+
exit status 1

rntoupper

$ rntoupper
Error: No files provided.
Usage: rntoupper [options] <file1> [<file2> ...]

Options:
  -algorithm string
    	Choose the uppercase algorithm to use, supported: searking,go,resenje,gobeam. (default "searking")
  -dry-run
    	Display the intended changes without renaming.
  -interactive
    	Ask for confirmation before renaming each file.

Conversion Examples:
+-----------+--------------------+-----------------------+-----------------------------+--------------------------------+-------------------------+
| ALGORITHM |                    |                       |                             |                                |                         |
+-----------+--------------------+-----------------------+-----------------------------+--------------------------------+-------------------------+
|           | Basic Cases        | Hello World           | helloWorld                  | HelloWorld                     | Hello_WORLD             |
| go        |                    | HELLO WORLD           | HELLOWORLD                  | HELLOWORLD                     | HELLO_WORLD             |
| gobeam    |                    | HELLO WORLD           | HELLOWORLD                  | HELLOWORLD                     | HELLO_WORLD             |
| resenje   |                    | HELLO WORLD           | HELLO WORLD                 | HELLO WORLD                    | HELLO WORLD             |
| searking  |                    | Hello World           | HelloWorld                  | HelloWorld                     | Hello_WORLD             |
|           | Underscore Cases   | __camel_snake_kebab__ | _leading_snake_case_        | __trailing__underscore__       |                         |
| go        |                    | __CAMEL_SNAKE_KEBAB__ | _LEADING_SNAKE_CASE_        | __TRAILING__UNDERSCORE__       |                         |
| gobeam    |                    | __CAMEL_SNAKE_KEBAB__ | _LEADING_SNAKE_CASE_        | __TRAILING__UNDERSCORE__       |                         |
| resenje   |                    | CAMEL SNAKE KEBAB     | LEADING SNAKE CASE          | TRAILING UNDERSCORE            |                         |
| searking  |                    | __camel_snake_kebab__ | _leading_snake_case_        | __trailing__underscore__       |                         |
|           | Hyphen Cases       | --camel-snake-kebab   | -leading-kebab-case-        | --trailing--hyphen--           |                         |
| go        |                    | --CAMEL-SNAKE-KEBAB   | -LEADING-KEBAB-CASE-        | --TRAILING--HYPHEN--           |                         |
| gobeam    |                    | --CAMEL-SNAKE-KEBAB   | -LEADING-KEBAB-CASE-        | --TRAILING--HYPHEN--           |                         |
| resenje   |                    | CAMEL SNAKE KEBAB     | LEADING KEBAB CASE          | TRAILING HYPHEN                |                         |
| searking  |                    | --camel-snake-kebab   | -leading-kebab-case-        | --trailing--hyphen--           |                         |
|           | Mixed Delimiters   | hello_world-and-kebab | Mixed_Snake-Kebab--Case     | UPPER_snake-KEBAB_Case         |                         |
| go        |                    | HELLO_WORLD-AND-KEBAB | MIXED_SNAKE-KEBAB--CASE     | UPPER_SNAKE-KEBAB_CASE         |                         |
| gobeam    |                    | HELLO_WORLD-AND-KEBAB | MIXED_SNAKE-KEBAB--CASE     | UPPER_SNAKE-KEBAB_CASE         |                         |
| resenje   |                    | HELLO WORLD AND KEBAB | MIXED SNAKE KEBAB CASE      | UPPER SNAKE KEBAB CASE         |                         |
| searking  |                    | Hello_world-and-kebab | Mixed_Snake-Kebab--Case     | UPPER_snake-KEBAB_Case         |                         |
|           | Acronym Handling   | ID_NUMBER             | HTTP_Response_Code          | XML_HTTP_REQUEST               | API_Version_2           |
| go        |                    | ID_NUMBER             | HTTP_RESPONSE_CODE          | XML_HTTP_REQUEST               | API_VERSION_2           |
| gobeam    |                    | ID_NUMBER             | HTTP_RESPONSE_CODE          | XML_HTTP_REQUEST               | API_VERSION_2           |
| resenje   |                    | ID NUMBER             | HTTP RESPONSE CODE          | XML HTTP REQUEST               | API VERSION 2           |
| searking  |                    | ID_NUMBER             | HTTP_Response_Code          | XML_HTTP_REQUEST               | API_Version_2           |
|           | Spaces and Words   |    leading spaces     | trailing spaces             |    both sides                  | This is a test sentence |
| go        |                    |    LEADING SPACES     | TRAILING SPACES             |    BOTH SIDES                  | THIS IS A TEST SENTENCE |
| gobeam    |                    |    LEADING SPACES     | TRAILING SPACES             |    BOTH SIDES                  | THIS IS A TEST SENTENCE |
| resenje   |                    | LEADING SPACES        | TRAILING SPACES             | BOTH SIDES                     | THIS IS A TEST SENTENCE |
| searking  |                    |    leading spaces     | Trailing spaces             |    both sides                  | This is a test sentence |
|           | Symbols and Random | 123_ABC-xyz--789      | !!special$$characters**     | ___!!!___weird___CASE___!!!___ |                         |
| go        |                    | 123_ABC-XYZ--789      | !!SPECIAL$$CHARACTERS**     | ___!!!___WEIRD___CASE___!!!___ |                         |
| gobeam    |                    | 123_ABC-XYZ--789      | !!SPECIAL$$CHARACTERS**     | ___!!!___WEIRD___CASE___!!!___ |                         |
| resenje   |                    | 123 ABC XYZ 789       | ! !SPECIAL $ $CHARACTERS ** | !!! WEIRD CASE !!!             |                         |
| searking  |                    | 123_ABC-xyz--789      | !!special$$characters**     | ___!!!___weird___CASE___!!!___ |                         |
+-----------+--------------------+-----------------------+-----------------------------+--------------------------------+-------------------------+
exit status 1

rntoupperleading

$ rntoupperleading
Error: No files provided.
Usage: rntoupperleading [options] <file1> [<file2> ...]

Options:
  -algorithm string
    	Choose the upperleading algorithm to use, supported: searking,gobeam. (default "searking")
  -dry-run
    	Display the intended changes without renaming.
  -interactive
    	Ask for confirmation before renaming each file.

Conversion Examples:
+-----------+--------------------+-----------------------+-------------------------+--------------------------------+-------------------------+
| ALGORITHM |                    |                       |                         |                                |                         |
+-----------+--------------------+-----------------------+-------------------------+--------------------------------+-------------------------+
|           | Basic Cases        | Hello World           | helloWorld              | HelloWorld                     | Hello_WORLD             |
| gobeam    |                    | Hello World           | HelloWorld              | HelloWorld                     | Hello_WORLD             |
| searking  |                    | Hello World           | HelloWorld              | HelloWorld                     | Hello_WORLD             |
|           | Underscore Cases   | __camel_snake_kebab__ | _leading_snake_case_    | __trailing__underscore__       |                         |
| gobeam    |                    | __camel_snake_kebab__ | _leading_snake_case_    | __trailing__underscore__       |                         |
| searking  |                    | __camel_snake_kebab__ | _leading_snake_case_    | __trailing__underscore__       |                         |
|           | Hyphen Cases       | --camel-snake-kebab   | -leading-kebab-case-    | --trailing--hyphen--           |                         |
| gobeam    |                    | --camel-snake-kebab   | -leading-kebab-case-    | --trailing--hyphen--           |                         |
| searking  |                    | --camel-snake-kebab   | -leading-kebab-case-    | --trailing--hyphen--           |                         |
|           | Mixed Delimiters   | hello_world-and-kebab | Mixed_Snake-Kebab--Case | UPPER_snake-KEBAB_Case         |                         |
| gobeam    |                    | Hello_world-and-kebab | Mixed_Snake-Kebab--Case | UPPER_snake-KEBAB_Case         |                         |
| searking  |                    | Hello_world-and-kebab | Mixed_Snake-Kebab--Case | UPPER_snake-KEBAB_Case         |                         |
|           | Acronym Handling   | ID_NUMBER             | HTTP_Response_Code      | XML_HTTP_REQUEST               | API_Version_2           |
| gobeam    |                    | ID_NUMBER             | HTTP_Response_Code      | XML_HTTP_REQUEST               | API_Version_2           |
| searking  |                    | ID_NUMBER             | HTTP_Response_Code      | XML_HTTP_REQUEST               | API_Version_2           |
|           | Spaces and Words   |    leading spaces     | trailing spaces         |    both sides                  | This is a test sentence |
| gobeam    |                    |    leading spaces     | Trailing spaces         |    both sides                  | This is a test sentence |
| searking  |                    |    leading spaces     | Trailing spaces         |    both sides                  | This is a test sentence |
|           | Symbols and Random | 123_ABC-xyz--789      | !!special$$characters** | ___!!!___weird___CASE___!!!___ |                         |
| gobeam    |                    | 123_ABC-xyz--789      | !!special$$characters** | ___!!!___weird___CASE___!!!___ |                         |
| searking  |                    | 123_ABC-xyz--789      | !!special$$characters** | ___!!!___weird___CASE___!!!___ |                         |
+-----------+--------------------+-----------------------+-------------------------+--------------------------------+-------------------------+
exit status 1

trim

$ rntocase trim
Error: minimum number of arguments is 1
Usage: rntocase trim [options] <files>

Options:
  -trim-chars string
	The characters to trim
  -dry-run
	Print the rename operations to be performed without executing them
  -interactive
	Prompt for confirmation before executing each rename operation

Examples

Normal run

$ touch "Hello World"
$ touch "Hello World.txt"
$ rnreverse Hello\ World
Rename: 'Hello World' -> 'dlroW olleH'
Renamed successfully.
$ ls
'dlroW olleH'  'Hello World.txt'
$ rnreverse Hello\ World.txt 
Rename: 'Hello World.txt' -> 'dlroW olleH.txt'
Renamed successfully.
$ ls
'dlroW olleH'  'dlroW olleH.txt'

Interactive mode

$ ls                    
'Hello World'  'Hello World.txt'
$ rnreverse -interactive * 
Rename: 'Hello World' -> 'dlroW olleH'
Rename 'Hello World' to 'dlroW olleH'? [y/n]: y
Renamed successfully.
Rename: 'Hello World.txt' -> 'dlroW olleH.txt'
Rename 'Hello World.txt' to 'dlroW olleH.txt'? [y/n]: n 
Skipped.
$ ls
'dlroW olleH'  'Hello World.txt'

Sample outputs

$ rnreverse *             
Rename: 'Hello World' -> 'dlroW olleH'
Renamed successfully.
Rename: 'Hello World.txt' -> 'dlroW olleH.txt'
Renamed successfully.

$ touch Hello\ World Hello\ World.txt
$ rntocase camel *
Rename: 'Hello World' -> 'helloWorld'
Renamed successfully.
Rename: 'Hello World.txt' -> 'helloWorld.txt'
Renamed successfully.

$ touch Hello\ World Hello\ World.txt
$ ls
'Hello World'  'Hello World.txt'
$ rntocase pascal *
Rename: 'Hello World' -> 'HelloWorld'
Renamed successfully.
Rename: 'Hello World.txt' -> 'HelloWorld.txt'
Renamed successfully.
$ ls
HelloWorld  HelloWorld.txt

$ touch Hello\ World Hello\ World.txt
$ rntodarwin *                       
Rename: 'Hello World' -> 'Hello_ _World'
Renamed successfully.
Rename: 'Hello World.txt' -> 'Hello_ _World.txt'
Renamed successfully.
$ ls
'Hello_ _World'  'Hello_ _World.txt'

$ touch Hello\ World Hello\ World.txt
$ ls
'Hello World'  'Hello World.txt'
$ rntocase dot *
Rename: 'Hello World' -> 'hello.world'
Renamed successfully.
Rename: 'Hello World.txt' -> 'hello.world.txt'
Renamed successfully.
$ ls
hello.world  hello.world.txt


$ touch Hello\ World Hello\ World.txt
$ rntokebab *
Rename: 'Hello World' -> 'hello-world'
Renamed successfully.
Rename: 'Hello World.txt' -> 'hello-world.txt'
Renamed successfully.
$ ls    
hello-world  hello-world.txt


$ touch Hello\ World Hello\ World.txt
$ touch Hello\ WORLD Hello\ WORLD.txt
$ ls
'Hello World'  'Hello WORLD'  'Hello World.txt'  'Hello WORLD.txt'
$ rntolowerleading *                 
Rename: 'Hello World' -> 'hello World'
Renamed successfully.
Rename: 'Hello WORLD' -> 'hello WORLD'
Renamed successfully.
Rename: 'Hello World.txt' -> 'hello World.txt'
Renamed successfully.
Rename: 'Hello WORLD.txt' -> 'hello WORLD.txt'
Renamed successfully.

$ touch Hello\ World Hello\ World.txt
$ rntosnake *
Rename: 'Hello World' -> 'hello_world'
Renamed successfully.
Rename: 'Hello World.txt' -> 'hello_world.txt'
Renamed successfully.
$ ls
hello_world  hello_world.txt


$ touch Hello\ World Hello\ World.txt
$ touch "hello of THE world.txt"
$ ls                            
'hello of THE world.txt'  'Hello World'  'Hello World.txt'
$ rntotitle *                   
Rename: 'hello of THE world.txt' -> 'Hello of THE World.txt'
Renamed successfully.
Skipping 'Hello World' (already matches desired format).
Skipping 'Hello World.txt' (already matches desired format).

$ touch hello\ world.txt
$ ls
'hello world.txt'
$ rntoupperleading *
Rename: 'hello world.txt' -> 'Hello world.txt'
Renamed successfully.


$ touch Hello.txt ' Hello world .txt' 'hello     .txt'
$ ls                                                  
'hello     .txt'   Hello.txt  ' Hello world .txt'
$ rntocase trim *
Rename: 'hello     .txt' -> 'hello.txt'
Renamed successfully.
Skipping 'Hello.txt' (already matches desired format).
Rename: ' Hello world .txt' -> 'Hello world.txt'
Renamed successfully.
$ ls  
 hello.txt   Hello.txt  'Hello world.txt'

Download

See Github releases here: https://github.com/arran4/rntocase/releases

Gentoo

See: https://github.com/arran4/rntocase

$ eselect repository enable arrans-overlay
$ emerge -va app-misc/rntocase-bin 

Agent Skills

rntocase supports AI agent skills to help automated coding agents understand how to use this tool safely and correctly.

Installing Skills

You can install a skill into your user profile or the current project directory using the skill install command.

# Install the bundled official skill
$ rntocase skill install --scope user rntocase

# Install a specific ref and path
$ rntocase skill install --ref v0.0.1 --path skills/example --name example arran4/rntocase

# Install from a local path
$ rntocase skill install --scope project ./skills/rntocase

Managing Skills

To view installed skills, inspect a skill, or remove one:

# List installed skills
$ rntocase skill list

# Inspect metadata and installation path
$ rntocase skill inspect rntocase

# Remove an installed skill
$ rntocase skill remove rntocase

Updating Skills

Remote skills can be updated to fetch the latest changes:

$ rntocase skill update rntocase

When you run rntocase skill update <name>, the update behavior depends on how the skill was installed:

  • No requested ref: If no --ref was provided during installation, the tool resolves and checks the upstream repository's HEAD on update.
  • Branch or tag tracking: If a branch or tag was provided to --ref during installation, the tool re-resolves the exact same requested ref and updates if its resolved commit changes.
  • Pinned Commit SHA: If a 40-character hexadecimal commit SHA was provided, the installation is considered an immutable pin. skill update will skip upstream network checks and report it is already up to date.

The SourceRevision property in the skill's metadata tracks the fully resolved commit SHA from the time of installation or last update.

Machine-Readable JSON Output

For automation workflows, rntocase provides a --json flag to output rename plans and results in a stable, machine-readable format.

  • The JSON object is printed exclusively to stdout.
  • Diagnostic errors are printed to stderr.
  • Interactive prompts are blocked when --json is enabled.
  • The exit status remains authoritative (zero on success/clean dry run, non-zero on failure/collision).

Schema Compatibility Policy

The JSON schema is designed to be stable for automated consumers. The following compatibility rules apply:

  • Additive changes are non-breaking: New keys, fields, or statuses may be added in future versions. Consumers should ignore unrecognized fields and map unrecognized statuses to a generic/failed state.
  • Breaking changes: Removing or renaming existing fields, or changing the core exit status semantics, will constitute a breaking change requiring a major version bump.

Example JSON Schema

The RenameResult schema includes details on the batch summary and individual operations.

{
  "dry_run": false,
  "operations": [
    {
      "source": "myFile.txt",
      "destination": "my-file.txt",
      "status": "renamed"
    },
    {
      "source": "unchanged-file.txt",
      "destination": "unchanged-file.txt",
      "status": "unchanged"
    }
  ],
  "summary": {
    "planned": 0,
    "renamed": 1,
    "unchanged": 1,
    "skipped": 0,
    "collision": 0,
    "failed": 0
  }
}

Status Enumerations:

  • planned: A successful dry-run operation intended to happen.
  • renamed: A successful execution of a rename operation.
  • unchanged: The source and destination are identical; no rename is necessary.
  • skipped: A successful plan that was bypassed (e.g., because another file in the batch failed preflight validation, aborting the batch).
  • collision: Multiple sources mapped to the same destination, or the destination already exists.
  • failed: An underlying OS error prevented the rename.

jq Automation Example

Find how many files would successfully be renamed during a dry-run:

rntocase snake --json --dry-run * | jq '.summary.planned'

About

Some utilities to rename files, to upper, lower, title, camel, kebab, darwin case and many more

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

0