The OpenNET Project / Index page

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



Индекс форумов
Составление сообщения

Исходное сообщение
"Bash Brainstorm  "
Отправлено pavlinux, 13-Авг-13 12:14 
>> while read -n 1024512 -r line
> И кста, чего не $((100*1000*1000)) или др.?

Методом тачевой интерполяции вывел, что больше 1400000 профита нету.

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

((i++)) забыл, иль надо for (i=0; i<$L; i++ ), и $L - лишнее


#!/bin/bash --posix

IFS=''

# The encoded symbols
SYMS="оеарсухОЕАНТРСВКМХ"

while read -r -n 1000000 line
     do
        for ((i=0; i < ${#line}; i++))
           do
                char=${line:$i:1}
                case "$char" in
                        [^$SYMS]) printf "%s" "$char";;
                        "о")      printf "%s" "o";;
                        "е")      printf "%s" "e";;
                        "а")      printf "%s" "a";;
                        "р")      printf "%s" "p";;
                        "с")      printf "%s" "c";;
                        "у")      printf "%s" "y";;
                        "х")      printf "%s" "x";;
                        "О")      printf "%s" "O";;
                        "Е")      printf "%s" "E";;
                        "А")      printf "%s" "A";;
                        "Н")      printf "%s" "H";;
                        "Т")      printf "%s" "T";;
                        "Р")      printf "%s" "P";;
                        "С")      printf "%s" "C";;
                        "В")      printf "%s" "B";;
                        "К")      printf "%s" "K";;
                        "М")      printf "%s" "M";;
                        "Х")      printf "%s" "X";;
                esac
        done
done


Ужасно тормознутая версия, видимо у баша проблемы с операциями выборки из массива.

Приколись, - замени
while read -r -n 1000000 line на
while read -r -N 1000000 line
:)
> ---БенчИ-давай?!

Тестовый текст: Война и Мир (4 тома, UTF-8)
http://pavlinux.ru/VNM.txt.lzma (5.328.556 байт текста).

$ time ./rus2lat.sh < ../VNM.txt > /dev/null
---

 

Ваше сообщение
Имя*:
EMail:
Для отправки новых сообщений в текущей нити на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
  Введите код, изображенный на картинке: КОД
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



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

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