Сегодня будем искать самое длинное слово в текстовом файле. На pure Bash. Зачем? Джаст фор фан, чтобы мозги подразмять. А вообще эта задачка из методички для собесов.

Создаём текстовый файл bashdays.txt с таким содержимым:

hello world хуйпиздаджигурда bashdays комутохеровато бидон

Пишем скрипт:

#!/bin/bash

longest=0
for word in $(<bashdays.txt)
do
    len=${#word}
    if (( len > longest ))
    then
        longest=$len
        longword=$word
    fi
done
printf 'Самое длинное слово %s и его длина %d.\n' "$longword" "$longest"

В результате получаем: самое длинное слово «хуйпиздаджигурда», и его длина — 16.

Роман Шубин
Роман Шубин
CEO & CTO, Главред в «Цифровой улей»
Задать вопрос
Алгоритм таков: цикл проходит по каждому слову в файле, вычисляет длину текущего слова len=${#word} и сохраняет результат в переменную len. Ну и логика больше-меньше.

Если знаешь способ короче, без использования внешних утилит, кидай в комменты, полайкаем.

Вечером ещё чтиво подъедет. На связи!