#!/usr/bin/env bash
function suffixes(){
    for i in $@; do
        basename $i | sed 's/.*-\(.*\)/\1/'
    done | sort | uniq
}

function recent(){
    suffix=$1
    dir=$2

    ls -t1 $dir/*-$suffix
}

count=$1
input=$2

for suffix in $(suffixes $input/*); do
    recent=( $(recent $suffix $input) )
    if [[ ${#recent[*]} -ge $count ]]; then
	base=${recent[$count]}
	find $input -not -newer $base -exec rm -f {} \;
    fi
done
