kiekus/rp-sort

27 lines
410 B
Bash
Executable File

#!/bin/sh
set -e
usage() {
echo "usage: $0 [-h] [-r] [NAME...]" >&2
}
reverse=
while getopts hr opt; do
case "$opt" in
r) reverse=yes;;
h) usage; exit 0;;
?) usage; exit 255;;
esac
done
shift $(($OPTIND-1))
spec="[.[\"$1\"]"; shift
for arg; do
spec="$spec, .[\"$arg\"]"
done
spec="$spec]"
cmd="sort_by($spec)"
[ -z "$reverse" ] || cmd="$cmd | reverse"
exec jq -M -s -c "$cmd[]"