#!/bin/sh set -euo pipefail usage() { echo 'Usage: categories DIRECTORY' } DIRECTORY="${1:-}" eval "$(assert-arg -- "$DIRECTORY" 'DIRECTORY')" listall() ( cd "$DIRECTORY" find category.*.*.sortdata | cut -d. -f2 | sort | uniq ) for category in `listall`; do out="$DIRECTORY"/categories."$category".sortdata cat "$DIRECTORY"/category."$category".*.sortdata > "$out" printf '%s\n' "$out" done