Skip to content

Instantly share code, notes, and snippets.

@dajare
Last active April 19, 2025 16:43
Show Gist options
  • Save dajare/19a417d56b866314a076c16db3bca875 to your computer and use it in GitHub Desktop.
Save dajare/19a417d56b866314a076c16db3bca875 to your computer and use it in GitHub Desktop.
Bash script to titlecase chapter titles in UPPERCASE
for filename in chapter-*.xhtml; do
new12=$(sed -n '12p' "$filename" | cut -b 8- | se titlecase -n)
sed -i -e '12s#^\(.*<p>\).*#'"\1$new12"'#g' "$filename"
## Uncomment next line to echo new title line to terminal for checking
# sed -n '12p' "$filename"
done
@dajare
Copy link
Author

dajare commented Apr 19, 2025

This doesn't change case: it takes the filename, truncates the extension, saves that string as variable, and does a search/replace with sed. E.g., for short story file: make the id="..." to id=~~ to make delimiting search easier:

ls | while read filename; do
full="${filename}"
id="${full%.*}"
  sed -i "s/~~/$id/g" ${filename}
done;

(The dquo deliimiters with sed are required for variable replacement in bash.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment