# A script is written here to manage(add/update/delete/view) the text file called “datafile.dat”.
#Each entry consists of fields separated by colons. The fields are: First name, last name, Phone number,Address, Birthdate, pincode
# Script File
#! /bin/bash
mych=0
until [ $mych -eq 5 ]
do
echo ""
echo " Select following choices "
echo " 1) Add records in data file"
echo " 2) update records in data file"
echo " 3) Display Records "
echo " 4) Delete records in data file"
echo " 5) Exit "
read mych
case $mych in
1) echo "Add Records to data File "
echo -e "Enter Person First name :"
read pfname
read -p "Enter Last Name : " plname
read -p "Enter Phone Number : " pphoneno
read -p "Enter Address : " address
read -p "Enter Birth Date :" bdate
read -p "Enter Pin Code : " pincode
echo -e $pfname":"$plname":"$pphoneno":"$address":"$bdate":"$pincode>>datafile.dat ;;
2) echo -e "Update Record for Person "
read -p "Enter Person First Name whose info wants to update : " pfname
echo -e "Enter '1' to update last name"
echo -e "Enter '2' to update phone number"
echo -e "Enter '3' to update address"
echo -e "Enter '4' to update birth date"
echo -e "Enter '5' to update pin code"
echo -e "Enter '6' to Exit"
read myupdatech
case $myupdatech in
1) read -p "Enter New Value for Last Name " plastname
oldplastname=`awk -F ":" -v jn=$pfname ' $1==jn {print $2 }' datafile.dat`
lineno=`awk -F ":" -v jn=$pfname ' $1==jn {print FNR }' datafile.dat`
sed -i "$lineno s/\<$oldplastname\>/$plastname/1" datafile.dat ;;
2) read -p "Enter New Value for Phone number " ppnumber
oldppnumber=`awk -F ":" -v jn=$pfname ' $1==jn {print $3 }' datafile.dat`
lineno=`awk -F ":" -v jn=$pfname ' $1==jn {print FNR }' datafile.dat`
sed -i "$lineno s/\<$oldppnumber\>/$ppnumber/1" datafile.dat ;;
3) read -p "Enter New Value for address " paddress
oldpaddress=`awk -F ":" -v jn=$pfname ' $1==jn {print $4 }' datafile.dat`
lineno=`awk -F ":" -v jn=$pfname ' $1==jn {print FNR }' datafile.dat`
sed -i "$lineno s/\<$oldpaddress\>/$paddress/1" datafile.dat ;;
4) read -p "Enter New Value for birth date " pbdate
echo "New Date " $pbdate
oldpbdate=`awk -F ":" -v jn=$pfname ' $1==jn {print $5 }' datafile.dat`
lineno=`awk -F ":" -v jn=$pfname ' $1==jn {print FNR }' datafile.dat`
sed -i "$lineno s/\<$oldpbdate\>/$pbdate/1" datafile.dat ;;
5) read -p "Enter New Value for pin code " ppincode
oldppincode=`awk -F ":" -v jn=$pfname ' $1==jn {print $6 }' datafile.dat`
lineno=`awk -F ":" -v jn=$pfname ' $1==jn {print FNR }' datafile.dat`
sed -i "$lineno s/\<$oldppincode\>/$ppincode/1" datafile.dat ;;
6) exit ;;
esac # end of inner case
if [ $? -eq 0 ] ;
then echo "Updated Successfully"
else "Record is not updated"
fi
;; # end of outer case switch 2
3) cat -n datafile.dat ;;
4) echo -e "Delete Record for Judge "
read -p "Enter Person First Name whose info wants to be deleted : " pfname
rcount=`grep -c "^$pfname" datafile.dat`
if [ $rcount -eq 1 ];
then
sed "/^$pfname/d" datafile.dat
# to delete permanently from file use
# sed -i "/^$pfname/d" datafile.dat
echo -e "Record deleted successfully"
else
echo -e "Record does not exist"
fi
;;
5) exit ;;
esac
done
#datafile.dat data file
firstname:lastname:phonenumber:address:birthdate:pincode
ABC:PATEL:978794:ANAND:01-04-1989:388120
XYZ:SHAH:8797:SURAT:21-05-1994:388842
PQR:DAVE:78945:BARODA:18-12-1997:794564
GANESH:PATIL:89789:AHMEDABAD:05-07-1990:388001
#Each entry consists of fields separated by colons. The fields are: First name, last name, Phone number,Address, Birthdate, pincode
# Script File
#! /bin/bash
mych=0
until [ $mych -eq 5 ]
do
echo ""
echo " Select following choices "
echo " 1) Add records in data file"
echo " 2) update records in data file"
echo " 3) Display Records "
echo " 4) Delete records in data file"
echo " 5) Exit "
read mych
case $mych in
1) echo "Add Records to data File "
echo -e "Enter Person First name :"
read pfname
read -p "Enter Last Name : " plname
read -p "Enter Phone Number : " pphoneno
read -p "Enter Address : " address
read -p "Enter Birth Date :" bdate
read -p "Enter Pin Code : " pincode
echo -e $pfname":"$plname":"$pphoneno":"$address":"$bdate":"$pincode>>datafile.dat ;;
2) echo -e "Update Record for Person "
read -p "Enter Person First Name whose info wants to update : " pfname
echo -e "Enter '1' to update last name"
echo -e "Enter '2' to update phone number"
echo -e "Enter '3' to update address"
echo -e "Enter '4' to update birth date"
echo -e "Enter '5' to update pin code"
echo -e "Enter '6' to Exit"
read myupdatech
case $myupdatech in
1) read -p "Enter New Value for Last Name " plastname
oldplastname=`awk -F ":" -v jn=$pfname ' $1==jn {print $2 }' datafile.dat`
lineno=`awk -F ":" -v jn=$pfname ' $1==jn {print FNR }' datafile.dat`
sed -i "$lineno s/\<$oldplastname\>/$plastname/1" datafile.dat ;;
2) read -p "Enter New Value for Phone number " ppnumber
oldppnumber=`awk -F ":" -v jn=$pfname ' $1==jn {print $3 }' datafile.dat`
lineno=`awk -F ":" -v jn=$pfname ' $1==jn {print FNR }' datafile.dat`
sed -i "$lineno s/\<$oldppnumber\>/$ppnumber/1" datafile.dat ;;
3) read -p "Enter New Value for address " paddress
oldpaddress=`awk -F ":" -v jn=$pfname ' $1==jn {print $4 }' datafile.dat`
lineno=`awk -F ":" -v jn=$pfname ' $1==jn {print FNR }' datafile.dat`
sed -i "$lineno s/\<$oldpaddress\>/$paddress/1" datafile.dat ;;
4) read -p "Enter New Value for birth date " pbdate
echo "New Date " $pbdate
oldpbdate=`awk -F ":" -v jn=$pfname ' $1==jn {print $5 }' datafile.dat`
lineno=`awk -F ":" -v jn=$pfname ' $1==jn {print FNR }' datafile.dat`
sed -i "$lineno s/\<$oldpbdate\>/$pbdate/1" datafile.dat ;;
5) read -p "Enter New Value for pin code " ppincode
oldppincode=`awk -F ":" -v jn=$pfname ' $1==jn {print $6 }' datafile.dat`
lineno=`awk -F ":" -v jn=$pfname ' $1==jn {print FNR }' datafile.dat`
sed -i "$lineno s/\<$oldppincode\>/$ppincode/1" datafile.dat ;;
6) exit ;;
esac # end of inner case
if [ $? -eq 0 ] ;
then echo "Updated Successfully"
else "Record is not updated"
fi
;; # end of outer case switch 2
3) cat -n datafile.dat ;;
4) echo -e "Delete Record for Judge "
read -p "Enter Person First Name whose info wants to be deleted : " pfname
rcount=`grep -c "^$pfname" datafile.dat`
if [ $rcount -eq 1 ];
then
sed "/^$pfname/d" datafile.dat
# to delete permanently from file use
# sed -i "/^$pfname/d" datafile.dat
echo -e "Record deleted successfully"
else
echo -e "Record does not exist"
fi
;;
5) exit ;;
esac
done
#datafile.dat data file
firstname:lastname:phonenumber:address:birthdate:pincode
ABC:PATEL:978794:ANAND:01-04-1989:388120
XYZ:SHAH:8797:SURAT:21-05-1994:388842
PQR:DAVE:78945:BARODA:18-12-1997:794564
GANESH:PATIL:89789:AHMEDABAD:05-07-1990:388001
No comments:
Post a Comment