From 627cd7d499bfa92becd42bfb6141d14fa475c6f1 Mon Sep 17 00:00:00 2001 From: Vitaliy Turov Date: Sat, 15 Feb 2025 11:31:10 +0300 Subject: [PATCH] feature/task_1 (#3) Reviewed-on: https://git.gocommunity.ru/walleri1/go_winter_work_2025/pulls/3 Co-authored-by: Vitaliy Turov Co-committed-by: Vitaliy Turov --- bash/task1/log_analyzer.sh | 46 ++++++++++++++++++++++++++++++++++++++ bash/test_branch.sh | 1 + go/summ/summ.go | 25 +++++++++++++++++++++ 3 files changed, 72 insertions(+) create mode 100755 bash/task1/log_analyzer.sh create mode 100644 bash/test_branch.sh create mode 100644 go/summ/summ.go diff --git a/bash/task1/log_analyzer.sh b/bash/task1/log_analyzer.sh new file mode 100755 index 0000000..b0d5e85 --- /dev/null +++ b/bash/task1/log_analyzer.sh @@ -0,0 +1,46 @@ +#!/bin/bash + +# Проверка наличия аргумента +if [ "$#" -ne 1 ]; then + echo "Ошибка: Необходимо указать путь к лог-файлу." + echo "Использование: $0 <путь к лог-файлу>" + echo "Этот скрипт анализирует лог-файл на наличие ошибок, предупреждений и информационных сообщений." + echo "$0 /var/log/syslog" + exit 1 +fi + +# Путь к лог-файлу +log_file_path="$1" + +# Проверка существования файла +if [ ! -f "$log_file_path" ]; then + echo "Ошибка: Файл '$log_file_path' не существует." + exit 1 +fi + +# Переменные для хранения количества сообщений +error_count=0 +warning_count=0 +info_count=0 + +# Чтение лог-файла и подсчет сообщений +while IFS= read -r line +do + case "$line" in + *"ERROR"*) + ((error_count++)) + ;; + *"WARNING"*) + ((warning_count++)) + ;; + *"INFO"*) + ((info_count++)) + ;; + esac +done < "$log_file_path" + +# Вывод результатов +echo "Количество сообщений в лог-файле:" +echo "Ошибки: $error_count" +echo "Предупреждения: $warning_count" +echo "Информационные сообщения: $info_count" diff --git a/bash/test_branch.sh b/bash/test_branch.sh new file mode 100644 index 0000000..cc1f786 --- /dev/null +++ b/bash/test_branch.sh @@ -0,0 +1 @@ +#!/bin/bash \ No newline at end of file diff --git a/go/summ/summ.go b/go/summ/summ.go new file mode 100644 index 0000000..caf1a1e --- /dev/null +++ b/go/summ/summ.go @@ -0,0 +1,25 @@ +package main + +import ( + "fmt" + "os" + "strconv" +) + +func main() { + summ := 0 + + // Проходим по всем аргументам командной строки, начиная с первого + for i := 1; i < len(os.Args); i++ { + // Преобразуем аргумент в целое число + num, err := strconv.Atoi(os.Args[i]) + if err != nil { + fmt.Fprintf(os.Stderr, "Ошибка преобразования аргумента '%s': %v\n", os.Args[i], err) + return + } + summ += num + } + + // Выводим результат + fmt.Println(summ) +}