reverse
Reads the entire content of a file and writes it back in reverse character order. The reversal operates on the raw character sequence of the file — Unicode code points are preserved, but byte-order marks and newline conventions are not adjusted.
| Option | Required | Description |
|---|---|---|
--in-file | Yes | Path to the input file to reverse |
--out-file | Yes | Path to write the reversed content |
levenshtein-distance
Computes the Levenshtein (edit) distance between two strings: the minimum number of single-character insertions, deletions, or substitutions required to transform one string into the other. Each argument can be a literal string value or a file path — if a path resolves to an existing file its contents are used as the string.
Algorithm
The implementation uses the standard dynamic-programming approach. A matrix of size
(m+1) × (n+1) is built where each cell [i][j] stores the edit distance
between the first i characters of string 1 and the first j characters of string 2.
| Option | Required | Description |
|---|---|---|
--string1 | Yes | First string or path to a file whose contents are used |
--string2 | Yes | Second string or path to a file whose contents are used |
abjadify
Strips English vowels (a e i o u, upper and lower case) from every word in a file,
mimicking the consonant-heavy style of abjad writing systems used in Arabic, Hebrew, and related scripts.
Single-vowel words (a and i) are preserved intact because they would become
empty strings otherwise, losing meaning.
| Option | Required | Description |
|---|---|---|
--in-file | Yes | Path to the input plain-text file |
--out-file | Yes | Path to write the abjadified output |
flesch-reading-ease
Analyses a plain-text file and produces a Flesch Reading Ease score — a well-established formula that estimates how easy a passage is to read based on sentence length and word complexity (syllable count). Higher scores indicate easier text; lower scores indicate more complex writing.
Formula
The raw score is clamped to the range [0, 100]. Syllables are counted using a vowel-group heuristic:
each contiguous run of vowel characters (a e i o u y) counts as one syllable, with a correction for
silent trailing -e. Every word is counted as having at least one syllable.
Readability Bands
Easily understood by an average 11-year-old.
Conversational English.
Aimed at 13-year-old readers.
Plain English, easily understood.
Suited to high school or college level.
Best understood by college graduates.
Best understood by university graduates.
Output
Five values are printed to stdout:
| Option | Required | Description |
|---|---|---|
--in-file | Yes | Path to the plain-text file to analyse |
report
Performs a full text analysis of the input, producing a comprehensive report that includes word count, sentence averages, estimated page count, Flesch Reading Ease score, readability band, reading time, and more. Input can be provided as a file path or as a direct string value.
--in-file or --string must be provided.
| Option | Required | Description |
|---|---|---|
--in-file | One of | Path to the input plain-text file to analyse |
--string | One of | Direct text string to analyse |
Command Reference
| Command | Required options | Optional options | Output |
|---|---|---|---|
strings reverse |
--in-file --out-file |
— | Reversed content written to --out-file |
strings levenshtein-distance |
--string1 --string2 |
— | Integer distance printed to stdout |
strings abjadify |
--in-file --out-file |
— | Vowel-stripped text written to --out-file |
strings flesch-reading-ease |
--in-file |
— | Score, readability band, and counts printed to stdout |
strings report |
--in-file or --string |
— | Full text analysis report printed to stdout |