Skip to content

Commit

Permalink
IU7-Linux
Browse files Browse the repository at this point in the history
  • Loading branch information
Danilado committed Jan 7, 2024
1 parent 0cbf3f8 commit 19d24ab
Show file tree
Hide file tree
Showing 29 changed files with 713 additions and 0 deletions.
11 changes: 11 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Это репозиторий, содержащий в себе работы для финального задания курса Проектно-технологическая практика (знакомство с Linux) кафедры ИУ7 МГТУ им. Баумана

## Здесь можно найти

- Компараторы

Всё \(:

## Примечание

Раньше здесь была мораль про то, что надо разбираться в коде, а не просто копировать, но теперь здесь просьба воткнуть звёздочку, если что-то отсюда вам помогло
91 changes: 91 additions & 0 deletions task_02/comparator2.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
#!/bin/bash

if [ \( -z "$1" \) -o \( -z "$2" \) ]; then
echo Ошибка: Введите имена двух файлов в качестве первого и второго аргумента! >&2
exit 42
fi
if [ ! -f $1 ]; then
if [[ "$3" == "-v" ]]; then
echo Ошибка: файл 1 не найден!
fi
exit 42
fi
if [ ! -f $2 ]; then
if [[ "$3" == "-v" ]]; then
echo Ошибка: файл 2 не найден!
fi
exit 42
fi
if [ ! -r $1 ]; then
if [[ "$3" == "-v" ]]; then
echo Ошибка: недостаточно прав для доступа к файлу 1!
fi
exit 42
fi
if [ ! -r $2 ]; then
if [[ "$3" == "-v" ]]; then
echo Ошибка: недостаточно прав для доступа к файлу 2!
fi
exit 42
fi

flag=""

tmp1=$(mktemp)
FIN=false
until $FIN; do
read -r line || FIN=true
if [ -z $flag ]; then
if [[ "$line" == *"string:"* ]]; then
flag="true"
echo "$line" | grep -Eo "string:.*" >"$tmp1"
fi
else
echo "$line" >>"$tmp1"
fi
done <"$1"

if [ -z $flag ]; then
if [[ "$3" == "-v" ]]; then
echo Ошибка! В первом файле не найдено подстроки \"string:\"
fi

exit 42
fi

flag=""

tmp2=$(mktemp)
FIN=false
until $FIN; do
read -r line || FIN=true
if [ -z $flag ]; then
if [[ "$line" == *"string:"* ]]; then
flag="true"
echo "$line" | grep -Eo "string:.*" >"$tmp2"
fi
else
echo "$line" >>"$tmp2"
fi
done <"$2"

if [ -z $flag ]; then
if [[ "$3" == "-v" ]]; then
echo Ошибка! Во втором файле не найдено подстроки \"string:\"
fi

exit 42
fi


if cmp -s $tmp1 $tmp2; then
if [[ "$3" == "-v" ]]; then
echo Файлы одинаковые
fi
exit 0
else
if [[ "$3" == "-v" ]]; then
echo Файлы разные
fi
exit 1
fi
129 changes: 129 additions & 0 deletions task_02/test.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,129 @@
#!/bin/bash

echo Вариант 2 - сравнение файлов после вхождения подстроки \"string:\"
# echo Тестровочные файлы:
# echo

echo Работа скрипта будет произведена с флагом -v
echo После каждого теста будет выводиться значение переменной \$?
echo Нажмите Enter, чтобы начать
read

clear
echo Тест 1 - базовая работа программы - файлы совпадают
echo Файл 1:
cat "./tests/text1.txt"
echo
echo Файл 2:
cat "./tests/text2.txt"
echo

bash ./comparator2.sh "./tests/text1.txt" "./tests/text2.txt" -v
echo Код выхода: "$?"
echo
echo Нажмите Enter, чтобы продолжить
read

clear
echo Тест 2 - первого файла не существует \(аналогично для файла 2\)
echo
bash ./comparator2.sh "./tests/unexisting_stuff.txt" "./tests/text2.txt" -v
echo Код выхода: "$?"
echo
echo Нажмите Enter, чтобы продолжить
read

clear
echo Тест 3 - файлы разные
echo Файл 1:
cat "./tests/text1.txt"
echo
echo Файл 2:
cat "./tests/text3.txt"
echo

bash ./comparator2.sh "./tests/text1.txt" "./tests/text3.txt" -v
echo Код выхода: "$?"
echo
echo Нажмите Enter, чтобы продолжить
read

clear
echo Тест 4 - отличие до подстроки \"string:\"
echo Файл 1:
cat "./tests/text1.txt"
echo
echo Файл 2:
cat "./tests/text4.txt"
echo

bash ./comparator2.sh "./tests/text1.txt" "./tests/text4.txt" -v
echo Код выхода: "$?"
echo
echo Нажмите Enter, чтобы продолжить
read

clear
echo Тест 5 - во втором файле нет подстроки \"string:\" \(аналогично для первого\)
echo Файл 1:
cat "./tests/text1.txt"
echo
echo Файл 2:
cat "./tests/text5.txt"
echo

bash ./comparator2.sh "./tests/text1.txt" "./tests/text5.txt" -v
echo Код выхода: "$?"
echo
echo Нажмите Enter, чтобы продолжить
read

clear
echo Тест 6 - отличие в количестве пробельных символов
echo Файл 1:
cat "./tests/text1.txt"
echo
echo Файл 2:
cat "./tests/text6.txt"
echo

bash ./comparator2.sh "./tests/text1.txt" "./tests/text6.txt" -v
echo Код выхода: "$?"
echo
echo Нажмите Enter, чтобы продолжить
read

clear
echo Тест 7 - Подстрока \"string:\" в конце строки
echo Файл 1:
cat "./tests/text7.txt"
echo
echo Файл 2:
cat "./tests/text7.txt"
echo

bash ./comparator2.sh "./tests/text7.txt" "./tests/text7.txt" -v
echo Код выхода: "$?"
echo
echo Нажмите Enter, чтобы продолжить
read

clear
echo Тест 8 - Подстрока \"string:\" в конце файла
echo Файл 1:
cat "./tests/text8.txt"
echo
echo Файл 2:
cat "./tests/text8.txt"
echo

bash ./comparator2.sh "./tests/text8.txt" "./tests/text8.txt" -v
echo Код выхода: "$?"
echo
echo Нажмите Enter, чтобы продолжить
read

clear
echo Тестирование варианта 2 завершено.
echo Нажмите Enter, чтобы выйти
read
2 changes: 2 additions & 0 deletions task_02/tests/text1.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
Lorem ipstring:sum dolor
sit amet
2 changes: 2 additions & 0 deletions task_02/tests/text2.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
Lorem ipstring:sum dolor
sit amet
2 changes: 2 additions & 0 deletions task_02/tests/text3.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
Lorem ipstring:sum dolor
sit amet consectetur
2 changes: 2 additions & 0 deletions task_02/tests/text4.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
DoLorem ipstring:sum dolor
sit amet
2 changes: 2 additions & 0 deletions task_02/tests/text5.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
Lorem ipsum dolor
sit amet
2 changes: 2 additions & 0 deletions task_02/tests/text6.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
Lorem ipstring:sum dolor
sit amet
2 changes: 2 additions & 0 deletions task_02/tests/text7.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
Lorem ipsum dolor string:
sit amet
3 changes: 3 additions & 0 deletions task_02/tests/text8.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
Lorem ipsum dolor
sit amet
string:
91 changes: 91 additions & 0 deletions task_03/comparator3.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
#!/bin/bash

if [ \( -z "$1" \) -o \( -z "$2" \) ]; then
echo Ошибка: Введите имена двух файлов в качестве первого и второго аргумента! >&2
exit 42
fi
if [ ! -f $1 ]; then
if [[ "$3" == "-v" ]]; then
echo Ошибка: файл 1 не найден!
fi
exit 42
fi
if [ ! -f $2 ]; then
if [[ "$3" == "-v" ]]; then
echo Ошибка: файл 2 не найден!
fi
exit 42
fi
if [ ! -r $1 ]; then
if [[ "$3" == "-v" ]]; then
echo Ошибка: недостаточно прав для доступа к файлу 1!
fi
exit 42
fi
if [ ! -r $2 ]; then
if [[ "$3" == "-v" ]]; then
echo Ошибка: недостаточно прав для доступа к файлу 2!
fi
exit 42
fi

tmp1=$(mktemp)

FLAG=""
FIN=false
until $FIN; do
read line || FIN=true
for word in $line; do
if [[ "$word" =~ ^[+-]?[0-9]+(\.[0-9]+)?$ ]]; then
FLAG="true"
echo $word >>$tmp1
fi
done
done <$1

if [ -z "$FLAG" ]; then
if [[ "$3" == "-v" ]]; then
echo Ошибка: В файле 1 нет ЧПТ!
fi

exit 42
fi

tmp2=$(mktemp)

FLAG=""
FIN=false
until $FIN; do
read line || FIN=true
for word in $line; do
if [[ "$word" =~ ^[+-]?[0-9]+(\.[0-9]+)?$ ]]; then
FLAG="true"
echo $word >>$tmp2
fi
done
done <$2

if [ -z "$FLAG" ]; then
if [[ "$3" == "-v" ]]; then
echo Ошибка: В файле 2 нет ЧПТ!
fi

exit 42
fi



# echo $numbers_in_text1
# echo $numbers_in_text2

if cmp -s $tmp1 $tmp2; then
if [[ "$3" == "-v" ]]; then
echo Файлы одинаковые
fi
exit 0
else
if [[ "$3" == "-v" ]]; then
echo Файлы разные
fi
exit 1
fi
Loading

0 comments on commit 19d24ab

Please sign in to comment.