@@ -27,6 +27,7 @@ main() {
27
27
# ---------------------------------------------------------------------------
28
28
# It all starts here
29
29
30
+ sanity_checks
30
31
parse_options " $@ "
31
32
32
33
trap cleanup EXIT
@@ -76,6 +77,19 @@ main() {
76
77
fi
77
78
}
78
79
80
+ # ---------------------------------------------------------------------------
81
+ sanity_checks () {
82
+ # ---------------------------------------------------------------------------
83
+
84
+ # Reset some vars
85
+ for binary in gawk grep sed; do
86
+ if ! which $binary >& /dev/null; then
87
+ echo " $UNKNOWN : $binary binary not found in path. Aborting."
88
+ exit 1
89
+ fi
90
+ done
91
+ }
92
+
79
93
# ---------------------------------------------------------------------------
80
94
reset () {
81
95
# ---------------------------------------------------------------------------
@@ -362,7 +376,7 @@ create_filter() {
362
376
else
363
377
# Index in the range of 0-9 can be handled by regex
364
378
query+=" ${comma} $( echo ${PATHTOKENS[i]} | \
365
- awk ' /:/ { a=substr($0,0,index($0,":")-1);
379
+ gawk ' /:/ { a=substr($0,0,index($0,":")-1);
366
380
b=substr($0,index($0,":")+1,index($0,"]")-index($0,":")-1);
367
381
if(b>0) { print a ":" b-1 "]" };
368
382
if(b<=0) { print a ":]" } }' | \
@@ -571,7 +585,7 @@ indexmatcher() {
571
585
a=${q%:* } # <- number before ':'
572
586
b=${q#*: } # <- number after ':'
573
587
[[ -z $b ]] && b=99999999999
574
- readarray -t num < <( (grep -Eo ' , [0-9]+[],]' | tr -d ,])<<< $line )
588
+ readarray -t num < <( (grep -Eo ' [0-9]+[],]' | tr -d ,])<<< $line )
575
589
if [[ ${num[i]} -ge $a && ${num[i]} -lt $b && matched -eq 1 ]]; then
576
590
matched=1
577
591
[[ $i -eq $(( ${# INDEXMATCH_QUERY[*]} - 1 )) ]] && {
@@ -806,21 +820,21 @@ filter() {
806
820
while read line; do
807
821
v=${line#* $tab }
808
822
case $OPERATOR in
809
- ' -ge' ) if awk ' {exit !($1>=$2)}' <<< " $v $RHS" ; then echo " $line " ; fi
823
+ ' -ge' ) if gawk ' {exit !($1>=$2)}' <<< " $v $RHS" ; then echo " $line " ; fi
810
824
;;
811
- ' -gt' ) if awk ' {exit !($1>$2) }' <<< " $v $RHS" ; then echo " $line " ; fi
825
+ ' -gt' ) if gawk ' {exit !($1>$2) }' <<< " $v $RHS" ; then echo " $line " ; fi
812
826
;;
813
- ' -le' ) if awk ' {exit !($1<=$2) }' <<< " $v $RHS" ; then echo " $line " ; fi
827
+ ' -le' ) if gawk ' {exit !($1<=$2) }' <<< " $v $RHS" ; then echo " $line " ; fi
814
828
;;
815
- ' -lt' ) if awk ' {exit !($1<$2) }' <<< " $v $RHS" ; then echo " $line " ; fi
829
+ ' -lt' ) if gawk ' {exit !($1<$2) }' <<< " $v $RHS" ; then echo " $line " ; fi
816
830
;;
817
831
' >' ) v=${v# \" } ; v=${v% \" }
818
832
RHS=${RHS# \" } ; RHS=${RHS% \" }
819
- [[ " $v " > " $RHS " ]] && echo " $line "
833
+ [[ " ${v,,} " > " ${ RHS,,} " ]] && echo " $line "
820
834
;;
821
835
' <' ) v=${v# \" } ; v=${v% \" }
822
836
RHS=${RHS# \" } ; RHS=${RHS% \" }
823
- [[ " $v " < " $RHS " ]] && echo " $line "
837
+ [[ " ${v,,} " < " ${ RHS,,} " ]] && echo " $line "
824
838
;;
825
839
esac
826
840
done # < <(egrep $opts "$FILTER")
0 commit comments