diff --git a/ex01/hello_world.sh b/ex01/hello_world.sh new file mode 100755 index 0000000..0a4be4f --- /dev/null +++ b/ex01/hello_world.sh @@ -0,0 +1,8 @@ +#!/usr/bin/bash + +if [ "$1" ] + then + echo "Hello, $1!" + else + echo "Hello, World!" +fi diff --git a/ex02/ex02.sh b/ex02/ex02.sh new file mode 100755 index 0000000..b48720c --- /dev/null +++ b/ex02/ex02.sh @@ -0,0 +1,17 @@ +#!/bin/bash +ls_out=$(ls -R | xargs -n1) +echo "$ls_out" > .assist +found=false + +params=$(awk -F " " '{print $1" " $2}' <(echo $1)) +for var in $params +do + grepped=$(grep "$var" .assist) + if [[ $grepped ]]; then + echo "$grepped" + found=true + fi +done +if [ "$found" = false ]; then + echo "the searched PATH is unexisting" +fi diff --git a/ex03/ex03.sh b/ex03/ex03.sh new file mode 100755 index 0000000..efd6218 --- /dev/null +++ b/ex03/ex03.sh @@ -0,0 +1,13 @@ +#!/bin/bash +if [ -z $1 ]; then + exit 1 +fi +touch .f +for i in "${@:2}" +do + grep -in $i $1 > .f + n=$(cat .f | wc -l) + echo "$i $n" + awk -F: '{print $1}' .f +done +rm .f \ No newline at end of file diff --git a/ex04/ex04.sh b/ex04/ex04.sh new file mode 100755 index 0000000..f519daf --- /dev/null +++ b/ex04/ex04.sh @@ -0,0 +1,9 @@ +#!/usr/bin/bash +if [ -z $1 ] || [ -z $2 ]; then + exit 1 +fi +echo "$2" | rev | cut -d"/" -f1 | rev +grep -in $1 $2 > .f +n=$(cat .f | wc -l) +awk -F: '{print $1}' .f + diff --git a/ex05/ex05.sh b/ex05/ex05.sh new file mode 100755 index 0000000..5fa9838 --- /dev/null +++ b/ex05/ex05.sh @@ -0,0 +1,54 @@ +#!/bin/bash +keys=( -s -e -o -m ) +for k in ${keys[*]} +do + key_found=false + if [ "$1" = "$k" ]; then + key_found=true + break + fi +done +if [ $key_found = false ]; then + echo Error.. + exit 1 +fi +if [ -z $2 ]; then + : +elif ! [ "$2" -eq "$2" >& /dev/null ]; then + echo "Error.." + exit 1 +fi +cmd=$0 +op=$1 +shift +res=0 +case $op in + "-s") + for i in $@ + do + res=$(echo "$res + $i" | bc) + done + ;; + "-e") + for i in $@ + do + [ $((i%2)) -eq 0 ] && res=$(echo "$res + $i" | bc) + done + ;; + "-o") + for i in $@ + do + ! [ $((i%2)) -eq 0 ] && res=$(echo "$res + $i" | bc) + done + ;; + "-m") + for i in $@ + do + res=$(echo "$res + $i" | bc) + done + res=$(echo $(( $res / $# ))) + ;; + *) + ;; +esac +echo "$res" diff --git a/ex06/ex06.sh b/ex06/ex06.sh new file mode 100755 index 0000000..cc49db0 --- /dev/null +++ b/ex06/ex06.sh @@ -0,0 +1,10 @@ +#!/bin/bash +map(){ + com=$1 + shift + for i in "$@" + do + eval "$com $i" + done +} + diff --git a/ex07/ex07.sh b/ex07/ex07.sh new file mode 100755 index 0000000..b76fdbc --- /dev/null +++ b/ex07/ex07.sh @@ -0,0 +1,10 @@ +#!/bin/bash +if [[ -z "$1" ]] || [[ "$1" -eq 0 ]]; then + exit 1 +fi +res=$(head "-$1" resourses/surnames.txt | grep -v 'Q-Chem' | sed "s/\.//g ; s/\-//g" | cat) +if [[ $res ]]; then + echo "$res" +else + echo "" +fi diff --git a/ex08/ex08.sh b/ex08/ex08.sh new file mode 100755 index 0000000..17831a0 --- /dev/null +++ b/ex08/ex08.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +zer=$(grep -o "0" resources/digitfile.txt | wc -l)" zeroes" +ones=$(grep -o "1" resources/digitfile.txt | wc -l)" ones" +twos=$(grep -o "2" resources/digitfile.txt | wc -l)" twos" +th=$(grep -o "3" resources/digitfile.txt | wc -l)" threes" +ft=$(grep -o "4" resources/digitfile.txt | wc -l)" fours" +fif=$(grep -o "5" resources/digitfile.txt | wc -l)" fives" +six=$(grep -o "6" resources/digitfile.txt | wc -l)" sixs" +sev=$(grep -o "7" resources/digitfile.txt | wc -l)" sevens" +nin=$(grep -o "8" resources/digitfile.txt | wc -l)" eights" +ten=$(grep -o "9" resources/digitfile.txt | wc -l)" nines" + +echo $zer, $ones, $twos, $th, $ft, $fif, $six, $sev, $nin, $ten + diff --git a/ex09/ex09.sh b/ex09/ex09.sh new file mode 100755 index 0000000..bfac4a5 --- /dev/null +++ b/ex09/ex09.sh @@ -0,0 +1,11 @@ +#!/bin/bash +if [ -z $1 ] || [ -z $2 ]; then + exit 1 +fi +if [ $1 = '-u' ] || [ $1 = '--url' ]; then + grep -Po '(^|\t)https:[A-Za-z0-9\/\.]+' $2 +elif [ $1 = '-e' ] || [ $1 = '--email' ]; then + grep -Po '(^|\t)[A-Za-z0-9\.]+@[A-Za-z0-9\.]+\.[A-Za-z0-9\.]+' $2 +else + exit 1 +fi diff --git a/ex10/ex10.sh b/ex10/ex10.sh new file mode 100755 index 0000000..217971e --- /dev/null +++ b/ex10/ex10.sh @@ -0,0 +1,8 @@ +#!/bin/bash +if [ -d $1 ]; then + exit 1 +fi +for i in $@ +do + echo "$(awk 'END{print NR}' $i) $i" +done