-
Notifications
You must be signed in to change notification settings - Fork 14
/
Copy pathft-select-samples
executable file
·62 lines (52 loc) · 1.06 KB
/
ft-select-samples
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#!/bin/bash
set -e
COUNTS="$1"
shift
EVENTS=""
for F in $*
do
E=`echo $F | sed -e 's/.*overhead=\([^_.]*\).*/\1/'`
EVENTS="$EVENTS $E"
done
declare -A MATCHES
for E in $EVENTS
do
if [ -z "${MATCHES[$E]}" ]
then
MATCHES[$E]=`ls $* | egrep "_overhead=${E}[_.]"`
fi
done
PATH_TO_SCRIPT=`dirname $0`
function find_helper()
{
IN_PATH=`which $1`
if [ -z "$IN_PATH" ] && [ ! -z "$PATH_TO_SCRIPT" ] && [ -x "$PATH_TO_SCRIPT/$1" ]
then
echo "$PATH_TO_SCRIPT/$1"
else
echo "$IN_PATH"
fi
}
function die()
{
echo "Error: $*"
exit 1
}
SHUFFLE_TRUNCATE=`find_helper ft-shuffle-truncate`
[ -z "$SHUFFLE_TRUNCATE" ] && die "Can't find 'ft-shuffle-truncate' utility."
EVENTS=`awk -F ',' '{print $1}' $COUNTS`
for E in ${!MATCHES[@]}
do
FILES="${MATCHES[$E]}"
CUTOFF=`awk -F ',' "/ $E,/ {print \\$2}" $COUNTS`
if [ -z "$FILES" ]
then
echo "[EE] No files for $E."
elif (( $CUTOFF == 0 ))
then
echo "[EE] Cutoff for $E is zero."
else
echo "$E -> $CUTOFF"
$SHUFFLE_TRUNCATE -c $CUTOFF $FILES
fi
done