#!/bin/bash | |
set -e | |
if [ -z "$1" ]; then | |
source_list=/dev/stdin | |
dest_list=/dev/stdout | |
else | |
source_list="$1" | |
dest_list="$1" | |
fi | |
# Load the file | |
readarray A < "$source_list" | |
# Sort | |
IFS=$'\n' | |
A=( $(LC_COLLATE=C sort -f <<< "${A[*]}") ) | |
A=( $(uniq <<< "${A[*]}") ) | |
unset IFS | |
# Dump array back into the file | |
printf '%s\n' "${A[@]}" > "$dest_list" |