#! /bin/bash
# Last edited on 2016-03-30 21:32:24 by stolfilocal

usage="$0 [-r] REGEXP < INFILE > OUTFILE"

# Sorts INFILE by listing all elements that match REGEXP
# before those which don't.

sortflags=( -k1,1 ) 
while [[ ( $# -ge 1 ) && ( "/$1" =~ ^/-.* ) ]]; do
  if [[ "/$1" == "/-r" ]]; then
    sortflags=( "-k1,1r" ); shift
  else
    echo "unrecognized option: $1" 1>&2; exit 1;
  fi
done

regexp="$1"; shift;

cat \
  | gawk '/'"$regexp"'/{ printf "0 %s\n",$0;next;} //{printf "1 %s\n",$0;}' \
  | sort ${sortflags} \
  | sed -e 's/^..//'

  
