-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlist-helper.sh
executable file
·46 lines (35 loc) · 1.03 KB
/
list-helper.sh
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
#!/bin/bash
source ./progress-bar.sh
contains () {
declare -a sourceList=("${@:2:$1}"); shift "$(($1 + 1))"
declare -a valueToSearch="$1"
for element in "${sourceList[@]}" ; do
if [ "$element" == "$valueToSearch" ] ; then
true
return
fi
done
false
return
}
deleteSmallListFromLargeList () {
declare -a progressBarMessage="$1"; shift
declare -a largeList=("${@:2:$1}"); shift "$(($1 + 1))"
declare -a smallList=("${@:2:$1}"); shift "$(($1 + 1))"
declare -a largeListOriginalSize="${#largeList[@]}"
declare -a index=0
for element in "${largeList[@]}" ; do
# Print progress bar.
printProgressBarOnceWithCalculatedPercentToPrint \
"$progressBarMessage" "$index" "$largeListOriginalSize"
if contains "${#smallList[@]}" "${smallList[@]}" "$element" ; then
unset largeList[$index]
fi
((index++))
done
# Print progress bar.
printProgressBarOnceWithCalculatedPercentToPrint \
"$progressBarMessage" "$index" "$largeListOriginalSize"
unset index
echo "${largeList[@]}"
}