You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
1.5 KiB
44 lines
1.5 KiB
#!/bin/bash |
|
|
|
# The Tome Fusion Spell |
|
# |
|
# This powerful spell allows you to magically bind together the scattered pages of a tome, creating a single |
|
# cohesive text file. Simply provide the path to the folder containing the sliced pages as an argument, and the |
|
# spell will do the rest. If you want to destroy the original pages after fusing them together, use the -d flag. |
|
# |
|
# Usage: ./fuse_text_file_lines.sh path/to/folder [-d] |
|
# todo: see if we can shorten or replace this script with `cat folder/* > file.txt` which simply cats a folder of scripts together (no separators tho) |
|
|
|
# Check that a folder path was provided as an argument |
|
if [ "$#" -ne 1 ]; then |
|
echo "Error: Please provide a folder path as an argument." |
|
exit 1 |
|
fi |
|
|
|
# Create a new text file with the same name as the folder |
|
folder_name=$(basename "$1") |
|
text_file="$folder_name.txt" |
|
touch "$text_file" |
|
|
|
# Read all the files in the folder and append their content to the text file, with a special line marking the beginning and end of each file |
|
for file in "$1"/*; do |
|
filename=$(basename "$file") |
|
echo "----- $filename -----" >> "$text_file" |
|
cat "$file" >> "$text_file" |
|
echo "----- End of $filename -----" >> "$text_file" |
|
done |
|
|
|
echo "Text file created: $text_file" |
|
|
|
# Check if the delete flag (-d) was provided as an argument |
|
while getopts "d" opt; do |
|
case $opt in |
|
d) |
|
# If the delete flag was provided, delete all the original files |
|
for file in "$1"/*; do |
|
rm "$file" |
|
done |
|
echo "Original files deleted." |
|
;; |
|
esac |
|
done
|
|
|