Recipe – building a frontend with grep
As a finale to this chapter, we will group a few features that we have learned together and build a script that prompts the operator for a filename, a search string, and an operation to carry out with the grep command. We will create the script as $HOME/bin/search.sh, and don't forget to make it executable:
#!/bin/bash
#Author: @theurbanpenguin
usage="Usage: search.sh file string operation"
if [ ! $# -eq3 ] ; then
echo "$usage"
exit 2
fi
[ ! -f $1 ] && exit 3
case $3 in
[cC])
mesg="Counting the matches in $1 of $2"
opt="-c"
;;
[pP])
mesg="Print the matches of $2 in $1"
opt=""
;;
[dD])
mesg="Printing all lines but those matching $3 from $1"
opt="-v"
;;
*) echo "Could not evaluate $1 $2 $3";;
esac
echo $mesg
grep $opt $2 $1 We start by checking for exactly three input arguments using the following code:
if [ ! $# -eq3 ] ; then echo "$usage" exit 2 fi
The next check uses a command...