LINUX.ORG.RU

Перебор букв на bash

 


0

1

Перебор букв что то типа

буква="а"
буква_из_строки="a"

if [[ "$буква" == "$буква_из_строки" ]]; then
  echo "Это та самая буква"
else
  echo "Это не та буква"
fi

Мне надо алфавит так переберать в цклическом порядке

Кто подскажет?



Последнее исправление: zte (всего исправлений: 2)

for буква in {a..z}

anonymous
()
letter=a
string='abc abc abc'

for ((i=0; i<${#string}; ++i)); do
    [[ ${string:$i:1} =~ [[:space:]] ]] && {
        continue
    }
    [[ $letter == ${string:$i:1} ]] && {
        echo ${letter}: та самая!
    } || {
        echo ${string:$i:1}: не та
    }
done
papin-aziat ★★★★★
()
 zte  наркоман, пытается кодить на баше
17.09.25 21:28:14 MSK
Последнее исправление: zte 17.09.25 21:29:49 MSK (всего исправлений: 2) 
firkax ★★★★★
()

Это не баш.

anonymous
()
Ответ на: комментарий от CrX

Зато вопрос прикольный. Я вот ни разу ещё не перебирал посимвольно в баш. Было интересно.

papin-aziat ★★★★★
()
Последнее исправление: papin-aziat (всего исправлений: 1)

foo=string for (( i=0; i<${#foo}; i++ )); do echo «${foo:$i:1}» done ${#foo} expands to the length of foo. ${foo:$i:1} expands to the substring starting at position $i of length 1.

anonymous
()
Ответ на: комментарий от anonymous

bash перебрать буквы

Полно примеров

anonymous
()
Ответ на: комментарий от papin-aziat

Пробельные как бы не буквы — надо выкинуть.

А он так хочет ней стать.
Но пока он лишь «санкция» для таковых и вводит для них 50% тарифы.

anonymous
()
Ответ на: комментарий от anonymous

Это если хочется использовать обычный синтаксис списков (например, при передаче в функцию).

kaldeon
()
Ответ на: комментарий от CrX

У нас порой похожие заметки

🤡

anonymous
()
Ответ на: комментарий от papin-aziat

Все знают, что если бы Трамп был президентом, то…

Много лет уже bash не использую.
Какие в нём удобные фичи есть, которых в Python или Perl нет?

На Perl например весьма удобно с вэб работать,весьма удобен для работы с текстом, …
Когда-то его использовал для создания отчётов.
Ныне системное API разрабатываю, а для этого Perl не пригоден.

anonymous
()
Ответ на: комментарий от anonymous

Плохая фича? Для меня главная, которая заставляет учить баш, чтобы писать скрипты.

papin-aziat ★★★★★
()
Ответ на: комментарий от zte

Кстати, зря скобок я понаставил, надо вот так:

letter=a
string='abc abc abc'

for ((i=0; i<${#string}; ++i)); do
    [[ ${string:$i:1} =~ [[:space:]] ]] &&
        continue
    [[ $letter == ${string:$i:1} ]] &&
        echo ${letter}: та самая! ||
        echo ${string:$i:1}: не та
done
papin-aziat ★★★★★
()
Ответ на: комментарий от papin-aziat

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

zte
() автор топика
Ответ на: комментарий от zte
letter=a

for i; do
    [[ -e $i ]] || {
        echo ${i}: не существует!
        continue
    }
    string=$(< "$i")
    for ((i=0; i<${#string}; ++i)); do
        [[ ${string:$i:1} =~ [[:space:]] ]] &&
            continue
        [[ $letter == ${string:$i:1} ]] &&
            echo ${letter}: та самая! ||
            echo ${string:$i:1}: не та
    done
done
chmod +x script
./script file1 file2 #и так далее
papin-aziat ★★★★★
()
Последнее исправление: papin-aziat (всего исправлений: 2)
Ответ на: комментарий от papin-aziat

letter=a не помешает? Туда надо алфавит засунуть

Типо, есть в алфавите такая буква, потом следущая ...

zte
() автор топика
Последнее исправление: zte (всего исправлений: 2)
Ответ на: комментарий от zte

Напиши, что конкретно должен делать скрипт. Желательно презентабельный фрагмент данных, над которыми будет произведена работа. Скрипты легко и приятно писать, зная данные, и крайне неприятно, когда надо обрабатывать некие или все возможные варианты.

papin-aziat ★★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.