scripts/scripts/convert_words.sh

30 lines
780 B
Bash
Executable File

#!/bin/bash
# Check if input and output files are provided
if [ $# -ne 2 ]; then
echo "Usage: $0 input_file.txt output_file.txt"
exit 1
fi
# Check if the input file exists
if [ ! -f "$1" ]; then
echo "Error: File '$1' not found"
exit 1
fi
# Store output file name
output_file="$2"
# Clear output file at the beginning
> "$output_file"
# Process file using a pipeline of specialized tools
# 1. tr - remove non-alphabetic chars except newlines
# 2. tr - convert to uppercase
# 3. grep - filter by length (5-8 characters)
# 4. sort - sort the words alphabetically
# 5. uniq - remove duplicates
tr -cd 'a-zA-Z\n' < "$1" | tr '[:lower:]' '[:upper:]' | grep -x '.\{5,8\}' | sort | uniq > "$output_file"
echo "Processing complete. Results saved to '$output_file'"