Upload files to "OS/bash/Week4"
Signed-off-by: Aadit Agrawal <tech@aaditagrawal.com>
This commit is contained in:
parent
3d5dfd6481
commit
5b0eda8b4e
10
OS/bash/Week4/q2.sh
Normal file
10
OS/bash/Week4/q2.sh
Normal file
@ -0,0 +1,10 @@
|
||||
#!/bin/sh
|
||||
|
||||
echo "Deleteing the following files"
|
||||
|
||||
for file in "$@";do
|
||||
echo "$file"
|
||||
rm -i "$file"
|
||||
done
|
||||
|
||||
echo "All files deleted successfully"
|
26
OS/bash/Week4/q3.sh
Normal file
26
OS/bash/Week4/q3.sh
Normal file
@ -0,0 +1,26 @@
|
||||
#!/bin/bash
|
||||
|
||||
selection_sort()
|
||||
{
|
||||
local arr=("$@") # array declaration
|
||||
local n=${#arr[@]}
|
||||
|
||||
for ((i=0; i<n-1; i++)); do
|
||||
min=$i
|
||||
for ((j=i+1; j<n; j++)); do
|
||||
if [[ ${arr[j]} < ${arr[min]} ]]; then
|
||||
min=$j
|
||||
fi
|
||||
done
|
||||
|
||||
temp="${arr[min]}"
|
||||
arr[min]="${arr[i]}"
|
||||
arr[i]="$temp"
|
||||
done
|
||||
|
||||
for element in "${arr[@]}"; do
|
||||
echo "$element"
|
||||
done
|
||||
}
|
||||
|
||||
selection_sort "$@"
|
24
OS/bash/Week4/q4.sh
Normal file
24
OS/bash/Week4/q4.sh
Normal file
@ -0,0 +1,24 @@
|
||||
#!/bin/bash
|
||||
|
||||
opt="$1"
|
||||
file="$2"
|
||||
|
||||
case "$opt" in
|
||||
-linecount)
|
||||
result=$(wc -l < "$file")
|
||||
echo "Line count in $file: $result"
|
||||
;;
|
||||
-wordcount)
|
||||
result=$(wc -w < "$file")
|
||||
echo "Word count in $file: $result"
|
||||
;;
|
||||
-charcount)
|
||||
result=$(wc -c < "$file")
|
||||
echo "Character count in $file: $result"
|
||||
;;
|
||||
*)
|
||||
echo "Invalid option. Please use -linecount, -wordcount, or -charcount."
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
38
OS/bash/Week4/q5.sh
Normal file
38
OS/bash/Week4/q5.sh
Normal file
@ -0,0 +1,38 @@
|
||||
#!/bin/bash
|
||||
|
||||
num_patterns=$(( $# ))
|
||||
patterns=("${@:1:num_patterns}")
|
||||
input_file="${!num_patterns}"
|
||||
|
||||
|
||||
while true;do
|
||||
echo "a. Search the patterns in the given input file."
|
||||
echo "b. Delete all occurrences of the pattern in the given input file."
|
||||
echo "c. Exit"
|
||||
|
||||
read choice
|
||||
|
||||
case "$choice" in
|
||||
a)
|
||||
echo "Searching patterns in $input_file:"
|
||||
for pattern in "${patterns[@]}"; do
|
||||
grep "$pattern" "$input_file"
|
||||
done
|
||||
;;
|
||||
b)
|
||||
echo "Deleting occurrences of patterns in $input_file:"
|
||||
for pattern in "${patterns[@]}"; do
|
||||
sed -i "s/$pattern//g" "$input_file"
|
||||
done
|
||||
echo "Occurrences deleted."
|
||||
;;
|
||||
c)
|
||||
echo "Exiting..."
|
||||
exit 0
|
||||
;;
|
||||
*)
|
||||
echo "Invalid choice. Please enter 'a', 'b', or 'c'."
|
||||
;;
|
||||
esac
|
||||
|
||||
done
|
10
OS/bash/Week4/solutions.md
Normal file
10
OS/bash/Week4/solutions.md
Normal file
@ -0,0 +1,10 @@
|
||||
## Lab 4
|
||||
|
||||
### Lab Exercises
|
||||
Q1. `q1.sh` - Duplication - `cp` of `$1` arg (first argument).
|
||||
Q2. `q2.sh` - Deletion - `rm` of all `$@` files using `for` loop.
|
||||
Q3. `q3.sh` - String Sort - Selection sort using loops and `if` and `echo`.
|
||||
Q4. `q4.sh` - File TypeCounter - Word/Line/CharCount of file via switch `case` statement and passing various commands.
|
||||
Q5. `q5.sh` - Pattern Recognition - `grep` for finding the pattern, `sed` for deleting the pattern, and `exit` for killing the pattern.
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user