feature/task_1 #3

Merged
walleri1 merged 3 commits from feature/task_1 into main 2025-02-15 11:31:11 +03:00
3 changed files with 72 additions and 0 deletions

46
bash/task1/log_analyzer.sh Executable file
View File

@ -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"

1
bash/test_branch.sh Normal file
View File

@ -0,0 +1 @@
#!/bin/bash

25
go/summ/summ.go Normal file
View File

@ -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)
}