The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Bash Brainstorm  "
Версия для распечатки Пред. тема | След. тема
Форум Программирование под UNIX
Исходное сообщение [ Отслеживать ]

. "Bash Brainstorm  " +/
Сообщение от Andrey Mitrofanov (?), 13-Авг-13, 10:04 
> Аццкий разогн!!! Ж=-)
> real    1m4.994s

Ну, ты упорный. //Бенчмарк не автоматизировал ещё? Не быть тебе форониксом.

> while read -n 1024512 -r line

И кста, чего не $((100*1000*1000)) или др.?

>      do
>         while read -r -N 1 char

i=0; L=${#line}; while((i<$L)); do
     char=${line:$i:1}

>     case "$char" in
>     esac
>         done <<< "$line"

done

> done

А вот ещё: буферизация вывода + регексп на > чем 1 символ

ou=
while [[ $line =~ ^([^$SYM]*)([$SYM])(.*)$ ]]; do  ###с квотингом rx-а внутири shell м.б. сложности :/
    ou="$ou${BASH_REMATCH[1]}"
    char=${BASH_REMATCH[2]}
    case $char in
        о) ochr=o;;
        [...]
    esac
    ou="$ou$ochr"
    line=${BASH_REMATCH[3]}
done
printf "%s" "$ou$line"


+++
И ещё без "этих ваших" case-ов:

SYMS="оеарсухОЕАНТРСВКМХ"
OSYMS="oeapcyxOEAHTPCBKMX"

#    char=${BASH_REMATCH[2]}
#    case $char in
#        о) ochr=o;;
#        [...]
#    esac
    val="${SYMS%$char*}"
    ochr="${OSYMS:${#val}:1}"
    ou="$ou$ochr"

---БенчИ-давай?!

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Bash Brainstorm  , pavlinux, 23-Мрт-13, 20:28  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру