#!/bin/bash # Замените 'your_file.txt' на имя вашего файла file="your_file.txt" # Инициализируем переменные max_len=0 max_line_num=0 current_line_num=0 # Читаем файл построчно # Используем `exec 3<"$file"` чтобы перенаправить файл в файловый дескриптор 3 # Это позволяет избежать использования `read < "$file"` внутри цикла, # что могло бы потребовать повторного открытия файла exec 3<"$file" while read -r line <&3; do # Инкрементируем номер строки current_line_num=$((current_line_num + 1)) # Получаем длину текущей строки line_len=${#line} # Проверяем, если текущая строка длиннее предыдущей максимальной if [ "$line_len" -gt "$max_len" ]; then max_len="$line_len" max_line_num="$current_line_num" fi done # Закрываем файловый дескриптор exec 3<&- # Выводим результат echo "Номер самой длинной строки: $max_line_num" echo "Длина самой длинной строки: $max_len"
#!/bin/bash
# Имя вашего файла
filename="ваш_файл.txt"
# Проверяем, существует ли файл
if [ ! -f "$filename" ]; then
echo "Ошибка: Файл '$filename' не найден."
exit 1
fi
# Инициализируем переменные
longest_line=""
max_length=0
# Читаем файл построчно
while IFS= read -r line; do
# Определяем длину текущей строки
current_length=${#line}
# Если текущая строка длиннее самой длинной найденной
if [ "$current_length" -gt "$max_length" ]; then
max_length="$current_length"
longest_line="$line"
fi
done < "$filename"
# Выводим результат
echo "Самая длинная строка:"
echo "$longest_line"
echo "Количество символов: $max_length"