#!/bin/sh source "$(dirname "$0")/functions.sh" swipeToQuery(){ swipe=$(echo "$1" | tr -d ".\*\"\\^$\(\)") printf '^' printf '%s\\+%s' "${swipe:0:1}" "${swipe:1:1}" if test "${swipe:2}"; then printf "${swipe:2}" |grep -o . | xargs -I{} printf '*%s' "{}" fi printf '\+$' } query(){ swipe="$2" wordlist="$1" wordfile="$wordlist" if test -d "$wordlist"; then wordfile=/dev/null fl=$(firstLetter "$swipe") ll=$(lastLetter "$swipe") test -f "$wordlist/$fl$ll" && wordfile="$wordlist/$fl$ll" fi query=$(swipeToQuery "$swipe") echo "query: $query" > /dev/stderr # -m 1: just give first result grep -i -m 1 "$query" "$wordfile" } while read -r line; do test "$line" && query "$1" "$line" && printf '\n' done