mirror of
https://github.com/kuhyx/testsAndMisc.git
synced 2026-07-04 20:43:13 +02:00
30 lines
773 B
Bash
Executable File
30 lines
773 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'"
|