36 lines
949 B
Plaintext
36 lines
949 B
Plaintext
|
#!/usr/bin/env bash
|
||
|
|
||
|
function parseResults() {
|
||
|
oIFS=$IFS
|
||
|
IFS=":"
|
||
|
declare -a fields=($1)
|
||
|
|
||
|
export QUERYTERM=$(echo "${fields[0]}"|awk '{print $1}');
|
||
|
export LISTCOUNT=$(echo "${fields[0]}"|awk '{print $2}');
|
||
|
export WORDLIST=$(echo "${fields[1]}"|sed 's/^\s*\|\s*$//g');
|
||
|
|
||
|
IFS=$oIFS
|
||
|
unset oIFS
|
||
|
}
|
||
|
|
||
|
if [ $# -eq 0 ]; then
|
||
|
>&2 echo "Please provide a word for spell checking. Include quotes."
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
if [[ "$1" =~ ^[0-9]+$ ]]; then
|
||
|
cecho IWhite On_IRed "ERROR. Only Words Please. No Numbers!"
|
||
|
exit 1;
|
||
|
fi
|
||
|
|
||
|
export RESULT=$(echo "$@"|aspell -a|sed "1 d"); # Deletes the header line
|
||
|
export FIXED="${RESULT/& }" # Removes ampersand causing parsing errors.
|
||
|
|
||
|
if [[ "${FIXED}" == *"*"* ]]; then
|
||
|
cecho IBlack On_IGreen "CORRECT!"
|
||
|
else
|
||
|
parseResults "${FIXED}"
|
||
|
cecho IBlack On_IRed "INCORRECT!"
|
||
|
cecho Black On_Yellow "There are ${LISTCOUNT} suggested corrections for '${QUERYTERM}': ${WORDLIST}. "
|
||
|
fi
|