David Brazdil | 2200a1b | 2018-05-05 12:07:38 +0100 | [diff] [blame^] | 1 | #!/bin/bash |
2 | set -e | ||||
3 | if [ -z "$1" ]; then | ||||
4 | source_list=/dev/stdin | ||||
5 | dest_list=/dev/stdout | ||||
6 | else | ||||
7 | source_list="$1" | ||||
8 | dest_list="$1" | ||||
9 | fi | ||||
10 | # Load the file | ||||
11 | readarray A < "$source_list" | ||||
12 | # Sort | ||||
13 | IFS=$'\n' | ||||
14 | A=( $(LC_COLLATE=C sort -f <<< "${A[*]}") ) | ||||
15 | A=( $(uniq <<< "${A[*]}") ) | ||||
16 | unset IFS | ||||
17 | # Dump array back into the file | ||||
18 | printf '%s\n' "${A[@]}" > "$dest_list" |