#!/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"