-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdeleteFromTable.sh
More file actions
executable file
·106 lines (96 loc) · 3.38 KB
/
deleteFromTable.sh
File metadata and controls
executable file
·106 lines (96 loc) · 3.38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
#!/bin/bash
export LC_COLLATE=C #To sort ascii character
shopt -s extglob #import Advanced Regex
echo -e "Delete From Table \n"
select deleteOption in "Delete All table Data" "Delete Specific Row" "Back"
do
case $deleteOption in
"Delete All table Data")
echo -e "Tables To Delete From: \n"
ls -F ./ | sed -n '/meta_/!p' | column -t
echo -n "Please Enter Table Name: "
read tableName
if [[ -f $tableName ]]
then
echo "$tableName Table Content is: "
column -t -s "|" $tableName
sed -i '2,$d' $tableName
echo "Table Data is deleted Successfully "
. ../../tableMenu.sh
else
echo "Table Name is Invalid Or Not Found."
echo ""
. ../../deleteFromTable.sh
fi
;;
"Delete Specific Row")
echo "Tables To Delete"
ls -F ./ | sed -n '/meta_/!p' | column -t
echo -n "Please Enter Table Name: "
read tableName
if [[ -f $tableName ]]
then
echo "$tableName Table Content is"
column -t -s "|" $tableName
echo -n "Please Enter Column Name You Want To Delete From: "
read fieldName
while ! [[ $fieldName = +([A-Za-z_]) ]]
do
echo "Invalid Column Name"
echo -n "Please Enter Column Name You Want To Delete From: "
read fieldName
done
colId=$(awk '
BEGIN{FS="|"}
{
if(NR==1)
{
for(i=1;i<=NF;i++)
{
if($i=="'$fieldName'")
print i
}
}
} ' $tableName)
if [[ $colId == "" ]]
then
echo "Column $fieldName does not exist"
. ../../tableMenu.sh
else
echo -n "Enter any value in the column you entered to delete this row:"
read val
res=$(awk '
BEGIN{FS="|"}
{
if ($'$colId'=="'$val'")
print $'$colId'
} ' $tableName )
if [[ $res == "" ]]
then
echo -e "$val Not Found At The Column $fieldName you Enterd Before"
source ../../tableMenu.sh
else
NR=$(awk '
BEGIN{FS="|"}
{
if ($'$colId'=="'$val'")
print NR
} ' $tableName )
sed -i ''$NR'd' $tableName
echo "Row Deleted Successfully"
source ../../tableMenu.sh
fi
fi
else
echo "Table Name is Invalid Or Not Found."
source ../../tableMenu.sh
fi
;;
"Back" )
source ../../tableMenu.sh
;;
* )
echo " Sorry, please select a number."
;;
esac
done