#shell script to manage(add/update/view/delete) Judge database with Fields: JudgeName, CourtName,City,Cases_judged,TotalCasses
#1. Display No of records
#2. Find Judge with highest cases judged
#3. Calculate total Cases of Court “Ahmedabad”
#4. List All Judge Names
#5.Exit
#! /bin/bash
mych=0
until [ $mych -eq 5 ]
do
echo ""
echo " Select following choices "
echo " 1) Add records in judge file"
echo " 2) update records in judge file"
echo " 3) Display no of Records "
echo " 4) Delete records in judge file"
echo " 5) Exit "
read mych
case $mych in
1) echo "Add Records to Judge File "
echo -e "Enter Judge Name :"
read jname
read -p "Enter Court Name : " cname
read -p "Enter City : " city
read -p "Enter Cases Judged :" cjudged
read -p "Enter Total Cases : " tcases
echo -e $jname"\t"$cname"\t"$city"\t"$cjudged"\t"$tcases>>judgedb.dat ;;
2)
echo -e "Update Record for Judge "
read -p "Enter Judge Name whose info wants to update : " jname
echo -e "Enter cjudged"
read cjudged
oldcjudged=`awk -v jn=$jname ' $1==jn {print $4 }' judgedb.dat`
echo $oldcjudged
lineno=`awk -v jn=$jname ' $1==jn {print FNR }' judgedb.dat`
echo $lineno
sed "$lineno s/\<$oldcjudged\>/$cjudged/1" judgedb.dat
;;
3) awk -f noofrecordsjudge.awk judgedb.dat ;;
4)
echo -e "Delete Record for Judge "
read -p "Enter Judge Name whose info wants to be deleted : " djname
rcount=`grep -c "^$djname" judgedb.dat`
if [ $rcount -eq 1 ];
then
sed "/^$djname/d" judgedb.dat
# to delete permanently from file use
# sed -i "/^$djname/d" judgedb.dat
echo -e "Record deleted successfully"
else
echo -e "Record does not exist"
fi
;;
5) exit ;;
esac
done
# Display No of records
# Command is
awk " END { print NR -1 } " judgedb.dat
#Find Judge with highest cases judged
# Command is
awk -f judgehighcase.awk judgedb.dat
# awk language code is infile named as judgehighcase.awk
# Preprocessing section "BEGIN " is optional here
BEGIN {
}
{
if (FNR==2) { highcase=$4 }
if (highcase<$4)
{ highcase=$4
judge=$1
}
}
END {
print judge " with highest cases : " highcase
}
#Calculate total Cases of Court “Ahmedabad”
# Command is
awk -f totalcases.awk judgedb.dat
# awk language code is infile named as
totalcases.awk
{
if ($3=="AHMEDABAD")
{
tcases+=$5
}
}
END {
print "total cases of Ahmedabad court :" tcases
}
# List All Judge Names
# Command is
awk -f listalljudgenames.awk judgedb.dat
# awk language code is infile named as listalljudgenames.awk
BEGIN { print "All judge names : "
}
{
if ($1=="JudgeName") { FNR=2}
else
print $1
}
# Master menu driven shell script file to display record, find records
#! /bin/bash
mych=0
until [ $mych -eq 5 ]
do
echo ""
echo " Select following choices "
echo " 1) Display no of Records "
echo " 2) Find judge with highest cases "
echo " 3) Calculate total cases of court "
echo " 4) List all judge names "
echo " 5) Exit "
read mych
case $mych in
1) awk " END { print NR -1 } " judgedb.dat ;;
2) awk -f judgehighcase.awk judgedb.dat ;;
3) awk -f totalcases.awk judgedb.dat ;;
4) awk -f listalljudgenames.awk judgedb.dat ;;
5) exit ;;
esac
done
# Data File named judgedb.dat
JudgeName CourtName City Cases_judged TotalCasses
AAA CIVIL AHMEDABAD 40 100
BBB NONCIVIL AHMEDABAD 10 40
CCC CRIMINAL BARODA 40 80
DDD CIVIL BARODA 40 140
EEE CIVIL ANAND 15 100
FFF NONCIVIL SURAT 40 40
TTT NONCIVIL SURAT 40 60
XXX VOCATIONAL ANAND 4 40
WWW CIVIL SURAT 50 60
ZZZ CIVIL BARODA 40 60
ZZX CIVIL ANAND 40 40
YYY NONCIVIL BARODA 20 30
PPP CIVIL MUMBAI 60 100