The OpenNET Project / Index page

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




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Bash Brainstorm  , !*! pavlinux, 23-Мрт-13, 20:28  [смотреть все]
Задача: Заменить в тексте все буквы русского алфавита на схожие по-написанию латинские.

Только bash, по возможности POISX, те начинаться со строки.


#!/bin/bash --posix

RUS_CAP=(А В Е К М Н О Р С Т Х)
LAT_CAP=(A B E K M H O P C T X)

RUS_LET=(а е о р с у х)
LAT_LET=(a e o p c y x)


---

Поехали...  

  • Bash Brainstorm  , !*! gpl77, 21:43 , 23-Мрт-13 (1) +1
    > Задача: Заменить в тексте все буквы русского алфавита на схожие по-написанию латинские.

    гос. контракты замыливаем ?

    :-)

  • Bash Brainstorm  , !*! pavlinux, 23:00 , 23-Мрт-13 (2)
    > Поехали...

    На sed вот так, но чёй-то долго...


    cat $1 | sed \
            -e 's/А/A/g' -e 's/В/B/g' \
            -e 's/Е/E/g' -e 's/К/K/g' \
            -e 's/М/M/g' -e 's/Н/H/g' \
            -e 's/О/O/g' -e 's/Р/P/g' \
            -e 's/С/C/g' -e 's/Т/T/g' \
            -e 's/Х/X/g' -e 's/а/a/g' \
            -e 's/е/e/g' -e 's/о/o/g' \
            -e 's/р/p/g' -e 's/с/c/g' \
            -e 's/у/y/g' -e 's/х/x/g';

    • Bash Brainstorm  , !*! Аноним, 08:37 , 24-Мрт-13 (3)
      >> Поехали...
      > На sed вот так, но чёй-то долго...

      А как же:
      >>>Только bash, по возможности POISX

      если надо быстро, то чистый sh сильно противопоказан.
      А из тулсов - самый подходяший - tr ... вот только multibyte он не понимает :(
      Можно конечно попробовать изврат - iconv UTF8->KOI8R | tr  ...

      Лучше налабай на сях или жабе. Я кстати буквально на днях видел на Go ~30 строк)

      • Bash Brainstorm  , !*! LSTemp, 07:03 , 25-Мрт-13 (4)
        >>> Поехали...
        >> На sed вот так, но чёй-то долго...
        > А как же:
        >>>>Только bash, по возможности POISX
        > если надо быстро, то чистый sh сильно противопоказан.
        > А из тулсов - самый подходяший - tr ... вот только multibyte
        > он не понимает :(

        а нахрен тут мульт - два набора по 30 символов (грубо - из постановки задачи)? свою таблицу и все - скармливай ее.

        > Можно конечно попробовать изврат - iconv UTF8->KOI8R | tr  ...
        > Лучше налабай на сях или жабе. Я кстати буквально на днях видел
        > на Go ~30 строк)

        • Bash Brainstorm  , !*! Ы, 06:01 , 26-Мрт-13 (8)
          >> А из тулсов - самый подходяший - tr ... вот только multibyte он не понимает :(
          > а нахрен тут мульт - два набора по 30 символов (грубо -
          > из постановки задачи)? свою таблицу и все - скармливай ее.

          Аааа .... дык ты не в теме! UTF8 - потому что! :)
          echo "АБЫРВАЛГ-oh, that Russians" | hd -cb
          И померкуй что к чему. Или сразу чего Павлинукс просил. Хрен-редьки ... :)

          • Bash Brainstorm  , !*! LSTemp, 03:08 , 28-Мрт-13 (10)
            >>> А из тулсов - самый подходяший - tr ... вот только multibyte он не понимает :(
            >> а нахрен тут мульт - два набора по 30 символов (грубо -
            >> из постановки задачи)? свою таблицу и все - скармливай ее.
            > Аааа .... дык ты не в теме! UTF8 - потому что! :)

            Не в теме конечно. Никогда про UTF не слышал...

            > echo "АБЫРВАЛГ-oh, that Russians" | hd -cb
            > И померкуй что к чему. Или сразу чего Павлинукс просил. Хрен-редьки ...
            > :)

            померкуй про iconv,recode,enconv и найди для каждой утили по паре причин в чем каждая POSIX не соответствует, а потом уж свое echo разевай.

            PS
            условия читай: нет ни слова про UTF - значит нет для меня этой проблемы (как факт) при разработке кода и методов решения задачи.

    • Bash Brainstorm  , !*! LSTemp, 04:25 , 28-Мрт-13 (11)
      >[оверквотинг удален]
      >         -e 's/С/C/g' -e 's/Т/T/g'
      > \
      >         -e 's/Х/X/g' -e 's/а/a/g'
      > \
      >         -e 's/е/e/g' -e 's/о/o/g'
      > \
      >         -e 's/р/p/g' -e 's/с/c/g'
      > \
      >         -e 's/у/y/g' -e 's/х/x/g';
      >

      [cut]

  • Bash Brainstorm  , !*! LSTemp, 07:05 , 25-Мрт-13 (5)
    >[оверквотинг удален]
    > Только bash, по возможности POISX, те начинаться со строки.
    >
     
    > #!/bin/bash --posix
    > RUS_CAP=(А В Е К М Н О Р С Т Х)
    > LAT_CAP=(A B E K M H O P C T X)
    > RUS_LET=(а е о р с у х)
    > LAT_LET=(a e o p c y x)
    >

    > ---
    > Поехали...

    опять студентов гнобишь? )

  • Bash Brainstorm  , !*! LSTemp, 07:13 , 25-Мрт-13 (6)
    > Задача: Заменить в тексте все буквы русского алфавита на схожие по-написанию латинские.
    > Только bash, по возможности POISX, те начинаться со строки.
    >
     
    > #!/bin/bash --posix
    > RUS_CAP=(А В Е К М Н О Р С Т Х)
    > LAT_CAP=(A B E K M H O P C T X)
    > RUS_LET=(а е о р с у х)
    > LAT_LET=(a e o p c y x)
    >

    > ---

    приведенное начало кода - это необходимое условие решения задачи? именно ч/з ЭТО решать? )

    > Поехали...

    • Bash Brainstorm  , !*! pavlinux, 17:05 , 25-Мрт-13 (7)
      >[оверквотинг удален]
      >>
       
      >> #!/bin/bash --posix
      >> RUS_CAP=(А В Е К М Н О Р С Т Х)
      >> LAT_CAP=(A B E K M H O P C T X)
      >> RUS_LET=(а е о р с у х)
      >> LAT_LET=(a e o p c y x)
      >>

      >> ---
      > приведенное начало кода - это необходимое условие решения задачи? именно ч/з ЭТО
      > решать?

      Нет. Обязательное только bash (доп. плюс за --posix).

      НЮХ на H|-0Х не заменять! :) ХАКЕР -> XAKEP (ксэкеп) можно!

      • Bash Brainstorm  , !*! LSTemp, 01:09 , 28-Мрт-13 (9)
        > НЮХ на H|-0Х не заменять! :) ХАКЕР -> XAKEP (ксэкеп) можно!

        Я давал повод к такому обращению?

      • Bash Brainstorm  , !*! LSTemp, 06:31 , 28-Мрт-13 (13)
        >[оверквотинг удален]
        >>> RUS_CAP=(А В Е К М Н О Р С Т Х)
        >>> LAT_CAP=(A B E K M H O P C T X)
        >>> RUS_LET=(а е о р с у х)
        >>> LAT_LET=(a e o p c y x)
        >>>
        >>> ---
        >> приведенное начало кода - это необходимое условие решения задачи? именно ч/з ЭТО
        >> решать?
        > Нет. Обязательное только bash (доп. плюс за --posix).
        > НЮХ на H|-0Х не заменять! :) ХАКЕР -> XAKEP (ксэкеп) можно!

        Из постов выше вопрос возникает: исходная и конечная CP для решения задачи занчения имеют? Если да, то уточните задачу.


        • Bash Brainstorm  , !*! pavlinux, 03:08 , 05-Апр-13 (15)
          > Из постов выше вопрос возникает: исходная и конечная CP для решения задачи
          > занчения имеют? Если да, то уточните задачу.

          Пиши в любой, для кодировок есть iconv;

            • Bash Brainstorm  , !*! pavlinux, 15:14 , 08-Апр-13 (17)
              >> Пиши в любой, для кодировок есть iconv;
              > Вы в самом деле придурки или просто пост №3 не читали?

              Спасибо. Не зачёт! Приходите летом на перездачу.  

              В задаче есть все необходмые условия.

  • Bash Brainstorm  , !*! LSTemp, 04:59 , 28-Мрт-13 (12)
    >[оверквотинг удален]
    > Только bash, по возможности POISX, те начинаться со строки.
    >
     
    > #!/bin/bash --posix
    > RUS_CAP=(А В Е К М Н О Р С Т Х)
    > LAT_CAP=(A B E K M H O P C T X)
    > RUS_LET=(а е о р с у х)
    > LAT_LET=(a e o p c y x)
    >

    > ---
    > Поехали...

    [cut]


  • Bash Brainstorm  , !*! pavlinux, 00:58 , 12-Апр-13 (18)
    А вы и не найдейтесь, ответов небудет. Я не ЕГЭээээээ
  • Bash Brainstorm  , !*! universite, 18:28 , 28-Июн-13 (19)
    > Задача: Заменить в тексте все буквы русского алфавита на схожие по-написанию латинские.

    есть утилитка replace из поставки Mysql ...
    REPLACE(1)                   MySQL Database System                  REPLACE(1)

  • Bash Brainstorm  , !*! Andrey Mitrofanov, 19:07 , 28-Июн-13 (20)
    > Задача: Заменить в тексте все буквы русского алфавита на схожие по-написанию латинские.
    > Только bash, по возможности POISX, те начинаться со строки.
    > Поехали...

    Три месяца прошло. Вот, смотрю тема пользуется популярностью, придумал :-D пол-решения для написания tr на _чистом_ bash-е:

    $ echo 123 |while read -N 1 char; do echo "$((++i)): >>$char<<"; done
    1: >>1<<
    2: >>2<<
    3: >>3<<
    4: >>
    <<
    $ _

    • Bash Brainstorm  , !*! Andrey Mitrofanov, 19:12 , 28-Июн-13 (21)
      > $ _

      Башизм%) всё-таки, но "дополнительные балы за --posix"(7) забираю:

      $ sh -c 'echo 123 |while read -N 1 char; do echo "$((++i)): >>$char<<"; done'
      read: 1: Illegal option -N
      $ bash --posix -c 'echo 123 |while read -N 1 char; do echo "$((++i)): >>$char<<"; done'
      1: >>1<<
      2: >>2<<
      3: >>3<<
      4: >><<
      $ ls -l /bin/sh
      lrwxrwxrwx 1 root root 4 Июн 25  2012 /bin/sh -> dash
      $ _

  • Bash Brainstorm  , !*! John, 23:29 , 28-Июн-13 (22)
    > Задача: Заменить в тексте все буквы русского алфавита на схожие по-написанию латинские.

    #!/bin/bash --posix

    while read -n 1 CHAR
    do
        CHAR="${CHAR/А/A}"
        CHAR="${CHAR/В/B}"
        CHAR="${CHAR/Е/E}"
        CHAR="${CHAR/К/K}"
        CHAR="${CHAR/М/M}"
        CHAR="${CHAR/Н/H}"
        CHAR="${CHAR/О/O}"
        CHAR="${CHAR/Р/P}"
        CHAR="${CHAR/С/C}"
        CHAR="${CHAR/Т/T}"
        CHAR="${CHAR/Х/X}"
        CHAR="${CHAR/а/a}"
        CHAR="${CHAR/е/e}"
        CHAR="${CHAR/о/o}"
        CHAR="${CHAR/р/p}"
        CHAR="${CHAR/с/c}"
        CHAR="${CHAR/у/y}"
        CHAR="${CHAR/х/x}"

        echo -n "$CHAR"
    done

    • Bash Brainstorm  , !*! Andrey Mitrofanov, 13:07 , 30-Июн-13 (23)
      >> Задача: Заменить в тексте все буквы русского алфавита на схожие по-написанию латинские.
      > #!/bin/bash --posix
      >     echo -n "$CHAR"

      [ "$CHAR" ] && echo -n "$CHAR" || echo


      Там же наверху _видно_, что с bash --posix _перевод строки_ нужно отдельно камлать.

      • Bash Brainstorm  , !*! John, 18:59 , 30-Июн-13 (24)
        >>> Задача: Заменить в тексте все буквы русского алфавита на схожие по-написанию латинские.
        >> #!/bin/bash --posix
        >>     echo -n "$CHAR"
        > [ "$CHAR" ] && echo -n "$CHAR" || echo
        > Там же наверху _видно_, что с bash --posix _перевод строки_ нужно отдельно
        > камлать.

        Не понял, что Вы имели ввиду. Указанный мною код работает.

        • Bash Brainstorm  , !*! Andrey Mitrofanov, 19:36 , 30-Июн-13 (25)
          >>>> Задача: Заменить в тексте все буквы русского алфавита на схожие по-написанию латинские.
          >>> #!/bin/bash --posix
          >>>     echo -n "$CHAR"
          >> [ "$CHAR" ] && echo -n "$CHAR" || echo
          >> Там же наверху _видно_, что с bash --posix _перевод строки_ нужно отдельно
          >> камлать.
          > Не понял, что Вы имели ввиду. Указанный мною код работает.

          Посмотри внимательно на строчку 4: в моих соощениях №№29,21.

          Но я тоже, похоже, ошибся там не от --posix изменения. 4 комманды с 3 разными вариантами выхода при одном входе:

          $ echo 1 3 |while unset IFS; read -N 1 char; do echo "$((++i)): >>$char<<"; done

          $ echo 1 3 |while unset IFS; read -N 1 char; do echo "$((++i)): >>$char<<"; done

          $ echo 1 3 |bash --posix -c 'while IFS= read -N 1 char; do echo "$((++i)): >>$char<<"; done'

          $ echo 1 3 |bash --posix -c 'while unset IFS; read -N 1 char; do echo "$((++i)): >>$char<<"; done'

          +++Ну, пожалуй, ещё месяца на 4 тему жодно закрыть.

      • Bash Brainstorm  , !*! John, 22:09 , 30-Июн-13 (27)
        >>> Задача: Заменить в тексте все буквы русского алфавита на схожие по-написанию латинские.
        >> #!/bin/bash --posix
        >>     echo -n "$CHAR"
        > [ "$CHAR" ] && echo -n "$CHAR" || echo
        > Там же наверху _видно_, что с bash --posix _перевод строки_ нужно отдельно
        > камлать.

        Да, я не посмотрел как будет с переводом строк. С данной конструкцией работает как надо.
        #!/bin/bash --posix

        while read -n 1 CHAR
        do
            CHAR="${CHAR/А/A}"
            CHAR="${CHAR/В/B}"
            CHAR="${CHAR/Е/E}"
            CHAR="${CHAR/К/K}"
            CHAR="${CHAR/М/M}"
            CHAR="${CHAR/Н/H}"
            CHAR="${CHAR/О/O}"
            CHAR="${CHAR/Р/P}"
            CHAR="${CHAR/С/C}"
            CHAR="${CHAR/Т/T}"
            CHAR="${CHAR/Х/X}"
            CHAR="${CHAR/а/a}"
            CHAR="${CHAR/е/e}"
            CHAR="${CHAR/о/o}"
            CHAR="${CHAR/р/p}"
            CHAR="${CHAR/с/c}"
            CHAR="${CHAR/у/y}"
            CHAR="${CHAR/х/x}"

            [ "$CHAR" ] && echo -n "$CHAR" || echo
        done

        • Bash Brainstorm  , !*! pavlinux, 02:24 , 29-Июл-13 (29)
          > С данной конструкцией работает как надо.

          Ваще жопа, проц на 100% нагружает! И оно строки переносит!!!

          ----


          $ time lzma -cd  VNM.txt.lzma | sed -e 's/А/A/g' -e 's/В/B/g' \
                                              -e 's/Е/E/g' -e 's/К/K/g' \
                                              -e 's/М/M/g' -e 's/Н/H/g' \
                                              -e 's/О/O/g' -e 's/Р/P/g' \
                                              -e 's/С/C/g' -e 's/Т/T/g' \
                                              -e 's/Х/X/g' -e 's/а/a/g' \
                                              -e 's/е/e/g' -e 's/о/o/g' \
                                              -e 's/р/p/g' -e 's/с/c/g' \
                                              -e 's/у/y/g' -e 's/х/x/g' \
                                                             > /dev/null;  

          real    0m2.387s
          user    0m2.488s
          sys     0m0.037s


  • Bash Brainstorm  , !*! pavlinux, 02:21 , 29-Июл-13 (28)
    > Поехали...

    Тестовый текст: Война и Мир (4 тома, UTF-8)

    http://pavlinux.ru/VNM.txt.lzma (5.328.556 байт текста).

    Контрольные суммы
    Оргинал:

    $ md5sum VNM.txt
    398d07d2988d50f8f9875790761cdb7d  VNM.txt

    Выходной:

    $ md5sum OUT.txt
    31ed88cff54827fa178922edc194200e  OUT.txt

    • Bash Brainstorm  , !*! pavlinux, 02:14 , 04-Авг-13 (30)

      #!/bin/bash --posix

      IFS=''

      while read -n 1 line
           do
              case $line in
               [[:lower:]])
                        case $line in
                              "а")    echo -n "a"; continue ;;
                              "о")    echo -n "o"; continue ;;
                              "е")    echo -n "e"; continue ;;
                              "р")    echo -n "p"; continue ;;
                              "с")    echo -n "c"; continue ;;
                              "у")    echo -n "y"; continue ;;
                              "х")    echo -n "x"; continue ;;
                              *)      echo -n $line; continue ;;
                        esac
             ;;
             [[:upper:]])
                         case $line in
                              "А")    echo -n "A"; continue ;;
                              "Е")    echo -n "E"; continue ;;
                              "О")    echo -n "O"; continue ;;
                              "В")    echo -n "B"; continue ;;
                              "К")    echo -n "K"; continue ;;
                              "М")    echo -n "M"; continue ;;
                              "Н")    echo -n "H"; continue ;;
                              "Р")    echo -n "P"; continue ;;
                              "С")    echo -n "C"; continue ;;
                              "Т")    echo -n "T"; continue ;;
                              "Х")    echo -n "X"; continue ;;
                              *)      echo -n  $line; continue ;;
                        esac
              ;;
              *) echo -ne $line; continue  ;;
         esac
      done


      Войну и Мир за 2 минуты.

      $ time lzma -cd  VNM.txt.lzma | ./recode.sh > /dev/null

      real    1m52.218s
      user    1m40.335s
      sys     0m11.723s

      ----
      Без разделения на upper и lower, примерно на 20 сек. дольше.  

      • Bash Brainstorm  , !*! pavlinux, 03:23 , 04-Авг-13 (31)
        Ver. 2

         
        #!/bin/bash --posix

        IFS=''

        while read -r -N 1 char
             do
               case $char in
                 [[:lower:]])
                          case $char in
                                "а")    printf "%s" "a";;
                                "о")    printf "%s" "o";;
                                "е")    printf "%s" "e";;
                                "р")    printf "%s" "p";;
                                "с")    printf "%s" "c";;
                                "у")    printf "%s" "y";;
                                "х")    printf "%s" "x";;
                                *)      printf "%s" $char;;
                          esac
               ;;
               [[:upper:]])
                           case $char in
                                "А")   printf "%s" "A";;
                                "Е")   printf "%s" "E";;
                                "О")   printf "%s" "O";;
                                "В")   printf "%s" "B";;
                                "К")   printf "%s" "K";;
                                "М")   printf "%s" "M";;
                                "Н")   printf "%s" "H";;
                                "Р")   printf "%s" "P";;
                                "С")   printf "%s" "C";;
                                "Т")   printf "%s" "T";;
                                "Х")   printf "%s" "X";;
                                *)     printf "%s" $char;;
                             esac
                ;;
                *) printf "%s" "$char";;
           esac
        done

        Due to conflicting historical implementations of the echo command, POSIX®
        recommends that printf is preferred over echo.

        • Bash Brainstorm  , !*! Аноним, 23:02 , 04-Авг-13 (32)
          Молодец - дожал таки! :-)
          Павлинкс - только один вопрос: а зачем оно?
          Ну только чесно, я чёйто как извилину не напрягаю для серьёзного чего применения не вижу ... Ы?
          • Bash Brainstorm  , !*! pavlinux, 00:17 , 05-Авг-13 (33)
            > Moлoдeц - дoжaл тaки! :-)

            He-нe-нe, тopмoзилoвo. Xoчy eщё чepeз пoдcтaвлeниe индeкcoв мaccивoв.

            Во! Новое задание придумал! :)

            Kcтaти, ecли тyт oтcopтиpoвaть бyквы пo чacтoтe иcпoльзoвaния paзгoняeтcя eщё нa 15 ceк.  

            > Пaвлинкc - тoлькo oдин вoпpoc: a зaчeм oнo?
            > Hy тoлькo чecнo, я чёйтo кaк извилинy нe нaпpягaю для cepьёзнoгo чeгo
            > пpимeнeния нe вижy ... Ы?

            Ecть пpибop Garmin Edge 800, в нeм ecть pycификaция, тaк вoт этoт пpибop
            кopявo oтoбpaжaeт pyccкиe бyквы, тaк бoлee-мeнee cимпaтишнo. :)

            Teкcт нa cтpaницax oт пoиcкoвикoв пpятaть мoжнo...

            • Bash Brainstorm  , !*! Андрей, 10:39 , 09-Авг-13 (38)
              Чисто для поднятия ЧСВ. Если использовать iconv, то можно обойтись и без этого кода на bash. Есть кодировка, в которой уже указанная в задании подмена сделана. :) На старых машинах типа ЕС ЭВМ использовалась. ;)
              Но это не POSIX.

        • Bash Brainstorm  , !*! LSTemp, 00:33 , 07-Авг-13 (34)
          ну это уже 2-а прохода по тексту. или циклическая обработка веса каждого символа за один проход (что думаю по производительности на интерпритаторе будет хуже). тут в реале тестировать надо - экономия времени выйдет (на эти 15 секунд) за дополнительный проход по тексту или нет.

          • Bash Brainstorm  , !*! LSTemp, 08:21 , 09-Авг-13 (35)
            > ну это уже 2-а прохода по тексту. или циклическая обработка веса каждого
            > символа за один проход (что думаю по производительности на интерпритаторе будет
            > хуже). тут в реале тестировать надо - экономия времени выйдет (на
            > эти 15 секунд) за дополнительный проход по тексту или нет.

            кстати у Хаффмана был алгоритм сжатия, который основывался как раз на анализе частоты встечающихся в тексте сиволов. потом наиболе частые символы кодировались короткой битовой последовательностью, а самые редкие наиболее длинной. Двухпроходной алгоритм (анализ и составение словаря, потом кодирование=сжатие) я как-то давным давно делал, но вроде как есть реализации и за один проход (опять же думаю, что для интерпритатора это мало подойдет по скорости). но попробуй алгоритмы погуглить... кто знает... мне кажется это наиболее близко к твоей задаче.

            • Bash Brainstorm  , !*! Andrey Mitrofanov, 09:23 , 09-Авг-13 (36)
              >> ну это уже 2-а прохода по тексту. или циклическая обработка веса каждого
              >> символа за один проход (что думаю по производительности на интерпритаторе будет
              >> хуже). тут в реале тестировать надо - экономия времени выйдет (на
              >> эти 15 секунд) за дополнительный проход по тексту или нет.
              > кстати у Хаффмана был алгоритм сжатия

              Кстати, да. Павлин, выкидываешь из естественного ресского текста буквы е-о-а и получаешь сжатие процентов на... 5? и текст остаётся читаемым. Ну, то есть теми, кто Тьюринга прошёл.

            • Bash Brainstorm  , !*! Андрей, 10:29 , 09-Авг-13 (37)
              >[оверквотинг удален]
              >> хуже). тут в реале тестировать надо - экономия времени выйдет (на
              >> эти 15 секунд) за дополнительный проход по тексту или нет.
              > кстати у Хаффмана был алгоритм сжатия, который основывался как раз на анализе
              > частоты встечающихся в тексте сиволов. потом наиболе частые символы кодировались короткой
              > битовой последовательностью, а самые редкие наиболее длинной. Двухпроходной алгоритм
              > (анализ и составение словаря, потом кодирование=сжатие) я как-то давным давно делал,
              > но вроде как есть реализации и за один проход (опять же
              > думаю, что для интерпритатора это мало подойдет по скорости). но попробуй
              > алгоритмы погуглить... кто знает... мне кажется это наиболее близко к твоей
              > задаче.

              Однопроходный алгоритм очень простой. Там частота использования символов задана заранее, а не вычисляется по текущему тексту. Частота использования символов уже посчитана лингвистами и криптографами достаточно давно и практически для всех современных языков. Погугли.

              • Bash Brainstorm  , !*! LSTemp, 11:14 , 09-Авг-13 (39)
                >[оверквотинг удален]
                >>> эти 15 секунд) за дополнительный проход по тексту или нет.
                >> кстати у Хаффмана был алгоритм сжатия, который основывался как раз на анализе
                >> частоты встечающихся в тексте сиволов. потом наиболе частые символы кодировались короткой
                >> битовой последовательностью, а самые редкие наиболее длинной. Двухпроходной алгоритм
                >> (анализ и составение словаря, потом кодирование=сжатие) я как-то давным давно делал,
                >> но вроде как есть реализации и за один проход (опять же
                >> думаю, что для интерпритатора это мало подойдет по скорости). но попробуй
                >> алгоритмы погуглить... кто знает... мне кажется это наиболее близко к твоей
                >> задаче.
                > Однопроходный алгоритм очень простой. Там частота использования символов задана заранее,

                средняя статистика.

                > а не вычисляется по текущему тексту. Частота использования символов уже посчитана

                в алгоритме сжатия Хаффмана - именно высчитывается. и как я уже говорил для наиболее частого символа выбирается наиболее короткая последовательность битов для кодирования, для наиболее редкого  - самая дляинная. причем битовые коды для каждого символа подбираются таким образом, чтобы вся результирующа последовательность битов однозначно определяла каждый симовл. т.е не может быть кода 01 для буквы А (которая чаще всего всречается - просто пример) и кода 01* для буквы Я (которая встречается реже всего в тексте). а так  - да статистика рулит. еще лет 25-ть назад, когда на ключе стучал - было че-то там СЕНОХРЕНВСПОМНЮ - именно наиболее встречающиеся буквы... )

                > лингвистами и криптографами достаточно давно и практически для всех современных языков.
                > Погугли.

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


                • Bash Brainstorm  , !*! LSTemp, 11:42 , 09-Авг-13 (40)
                  >> Однопроходный алгоритм очень простой. Там частота использования символов задана заранее,

                  понял что Вы хотели сказать. стормозил чуть-чуть.. и распекался практически о том же).

              • Bash Brainstorm  , !*! pavlinux, 19:40 , 11-Авг-13 (41)
                >>[оверквотинг удален]
                > Частота использования символов уже посчитана лингвистами и криптографами
                > достаточно давно и практически для всех современных языков.

                Переделанная версия, с учётом частотности букв. http://ru.wikipedia.org/wiki/%D0%A7%D0%B...


                #!/bin/bash --posix

                IFS=''

                while read -r -N 1 char
                     do
                       case $char in
                         [[:lower:]])
                                  case $char in                   # вероятность
                                        "о")    printf "%s" "o";; # 9.28%
                                        "е")    printf "%s" "e";; # 8.66%
                                        "а")    printf "%s" "a";; # 8.10%
                                        "р")    printf "%s" "p";; # 5.53%
                                        "с")    printf "%s" "c";; # 5.45%
                                        "у")    printf "%s" "y";; # 2.90%
                                        "х")    printf "%s" "x";; # 0.92%
                                        *)      printf "%s" $char;;
                                  esac
                       ;;
                       [[:upper:]])
                                   case $char in
                                        "О")    printf "%s" "O";; # 9.28%
                                        "Е")    printf "%s" "E";; # 8.66%
                                        "А")    printf "%s" "A";; # 8.10%
                                        "Н")    printf "%s" "H";; # 6.35%
                                        "Т")    printf "%s" "T";; # 6.30%
                                        "Р")    printf "%s" "P";; # 5.53%
                                        "С")    printf "%s" "C";; # 5.45%
                                        "В")    printf "%s" "B";; # 4.19%
                                        "К")    printf "%s" "K";; # 3.47%
                                        "М")    printf "%s" "M";; # 3.29%
                                        "Х")    printf "%s" "X";; # 0.92%
                                        *)      printf "%s" $char;;
                                     esac
                        ;;
                        *) printf "%s" "$char";;
                   esac
                done

                echo

                E-e-e-e, от 4 до 9 сек. профита! :)

                time cat VnM.txt | /work/recode2.sh  > /dev/null

                real    1m43.708s
                user    1m31.108s
                sys     0m12.323s

                • Bash Brainstorm  , !*! pavlinux, 02:55 , 12-Авг-13 (42)
                  >>>[оверквотинг удален]
                  > E-e-e-e, от 4 до 9 сек. профита! :)
                  > time cat VnM.txt | /work/recode2.sh  > /dev/null
                  > real    1m43.708s
                  > user    1m31.108s
                  > sys     0m12.323s

                  И ещё ...


                  #!/bin/sh --posix

                  IFS=''

                  while read -r -N 1 char
                       do
                         case $char in
                          [оеарсухОЕАНТРСВКМХ])
                                    case $char in
                                          "о")    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
                          ;;
                          *)
                          printf "%s" "$char"
                          ;;
                       esac
                  done

                  echo

                  time cat VNM.txt | ./recode5.sh > /dev/null

                  real    1m34.038s
                  user    1m20.380s
                  sys     0m13.405s


                  • Bash Brainstorm  , !*! Andrey Mitrofanov, 10:12 , 12-Авг-13 (43)
                    >> real    1m43.708s
                    > И ещё ...
                    > #!/bin/sh --posix
                    > time cat VNM.txt | ./recode5.sh > /dev/null
                    > real    1m34.038s

                    Во-первых, useless use of cat.

                    Во-вторых, достаточно, видимо было гонять, не меняя shebang,

                    time bash ./recode5.sh <VNM.txt >/dev/null

                    В-третьих, заниматься ерундой, так уж:

                    for sh in bash dash ash tcsh pdksh zsh; do  ##заменить на /etc/shells по вкусу
                      if sh1=$(which $sh); then
                        echo "+++ $sh"
                        time $SH1 ./recode5.sh <VNM.txt >/dev/null
                      else
                        echo " ??? $sh"
                      fi
                    done

                • Bash Brainstorm  , !*! Andrey Mitrofanov, 10:16 , 12-Авг-13 (44)
                  > while read -r -N 1 char
                  >      do
                  >        case $char in

                  Вот тебе _самый_ частотный %) фикс:

                            \ ) echo -n ' ';;

                  >          [[:lower:]])

                  И да, похоже, фигня с не-bash-ами не прокатит... :/

                  • Bash Brainstorm  , !*! Andrey Mitrofanov, 10:22 , 12-Авг-13 (45)
                    > Вот тебе _самый_ частотный %) фикс:
                    >           \ ) echo -n ' ';;

                    И самый-самый:

                       [^оеарсухОЕАНТРСВКМХ])  printf "%s" "$char";;

                    //да-да, echo -n, посикс...

                    • Bash Brainstorm  , !*! pavlinux, 13:37 , 12-Авг-13 (46)
                      > И самый-самый:
                      > [^оеарсухОЕАНТРСВКМХ])  printf "%s" "$char";;

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

                      Только с [^оеарсухОЕАНТРСВКМХ])  printf "%s" "$char";;

                      real    1m26.057s
                      user    1m19.937s
                      sys     0m5.885s

                      Только с пробелом

                      real    1m24.026s
                      user    1m17.372s
                      sys     0m6.359s


                      #!/bin/sh --posix

                      IFS=''

                      while read -r -N 1 char
                           do
                             case $char in
                              ' ')
                                      printf "%s" ' '
                              ;;
                              [оеарсухОЕАНТРСВКМХ])
                                        case $char in
                                              "о")    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
                              ;;
                              *)
                              printf "%s" $char
                              ;;
                           esac
                      done

                      echo


                      • Bash Brainstorm  , !*! pavlinux, 16:02 , 12-Авг-13 (47)
                         
                        #!/bin/sh --posix

                        IFS=''

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

                        while read -r -N 1 char
                             do
                               case $char in
                                " ")
                                        printf "%s" " "
                                ;;
                                [[:lower:]])
                                        case $char in
                                                [$LOW_SYMS])
                                                        case $char in
                                                                "о")    printf "%s" "o";;
                                                                "е")    printf "%s" "e";;
                                                                "а")    printf "%s" "a";;
                                                                "р")    printf "%s" "p";;
                                                                "с")    printf "%s" "c";;
                                                                "у")    printf "%s" "y";;
                                                                "х")    printf "%s" "x";;
                                                        esac
                                                ;;
                                        esac
                                ;;
                                [[:upper:]])
                                        case $char in
                                                [$UPP_SYMS])
                                                        case $char in
                                                                "О")    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
                                                ;;
                                        esac
                                ;;
                                *)
                                        printf "%s" $char
                                ;;
                             esac
                        done

                        echo


                        real    1m17.786s
                        user    1m12.134s
                        sys     0m5.358s

                        ---

                        - При использование [^$LOW_SYMS]) и [^$UPP_SYMS])

                        real    1m34.277s
                        user    1m26.699s
                        sys     0m7.184s

                        - При использование [^$UPP_SYMS])

                        real    1m18.631s
                        user    1m13.319s
                        sys     0m5.007s

                        • Bash Brainstorm  , !*! pavlinux, 02:36 , 13-Авг-13 (48)

                          #!/bin/bash --posix

                          IFS=''

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

                          while read -r -N 1 char
                               do
                                  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

                          real    1m19.573s
                          user    1m14.949s
                          sys     0m4.424s

                          В общем, предел... основной тормоз - это посимвольное чтение, скорость работы 65kb/sec :)
                          ---
                          Аццкий разогн!!! Ж=-)

                          real    1m4.994s
                          user    0m56.966s
                          sys     0m5.837s


                          #!/bin/bash --posix

                          IFS=''

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

                          while read -n 1024512 -r line
                               do
                                  while read -r -N 1 char
                                       do
                                          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 <<< "$line"
                          done


                        • Bash Brainstorm  , !*! universite, 03:16 , 13-Авг-13 (49)
                          А можно на гитхаб? А то сложно diff'ы искать :)
                        • Bash Brainstorm  , !*! pavlinux, 03:32 , 13-Авг-13 (50)
                          > А можно на гитхаб? А то сложно diff'ы искать :)

                          По времени :)
                          ---
                          https://github.com/pavlinux/rus2lat.sh

                        • Bash Brainstorm  , !*! Andrey Mitrofanov, 10:04 , 13-Авг-13 (51)
                          > Аццкий разогн!!! Ж=-)
                          > 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"

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

                        • Bash Brainstorm  , !*! pavlinux, 12:14 , 13-Авг-13 (52)
                          >> 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
                          ---

                        • Bash Brainstorm  , !*! pavlinux, 14:14 , 13-Авг-13 (53)
                          > Ужасно тормознутая версия, видимо у баша проблемы с операциями выборки из массива.

                          real    22m29.780s
                          user    22m23.740s
                          sys     0m1.871s

                          :)

                        • Bash Brainstorm  , !*! pavlinux, 19:33 , 13-Авг-13 (54)

                          $ strace -c -f ./rus2lat.sh < ../VNM.txt > /dev/null

                          ^CProcess 8116 detached
                          % time     seconds  usecs/call     calls    errors syscall
                          ------ ----------- ----------- --------- --------- ----------------
                          78.74    0.009034           0    320306           rt_sigprocmask
                          17.77    0.002039           0     79862           write
                            1.58    0.000181           0      1339           read
                            0.43    0.000049           2        32         7 open
                            0.37    0.000042          14         3           munmap
                            0.33    0.000038          38         1           access
                            0.30    0.000034           1        33           mmap
                            0.24    0.000028           0       846           lseek
                            0.24    0.000028           0       425       425 ioctl
                            0.00    0.000000           0        25           close
                            0.00    0.000000           0        10         4 stat
                            0.00    0.000000           0       448           fstat
                            0.00    0.000000           0        10           mprotect
                            0.00    0.000000           0         3           brk
                            0.00    0.000000           0         8           rt_sigaction
                            0.00    0.000000           0         1           dup2
                            0.00    0.000000           0         1           getpid
                            0.00    0.000000           0         1           execve
                            0.00    0.000000           0         1           uname
                            0.00    0.000000           0         3         1 fcntl
                            0.00    0.000000           0         2           getrlimit
                            0.00    0.000000           0         1           getuid
                            0.00    0.000000           0         1           getgid
                            0.00    0.000000           0         1           geteuid
                            0.00    0.000000           0         1           getegid
                            0.00    0.000000           0         1           getppid
                            0.00    0.000000           0         1           getpgrp
                            0.00    0.000000           0         1           arch_prctl
                          ------ ----------- ----------- --------- --------- ----------------
                          100.00    0.011473                403367       437 total

                          Предыдущая версия с двумя read


                          ^CProcess 15403 detached
                          % time     seconds  usecs/call     calls    errors syscall
                          ------ ----------- ----------- --------- --------- ----------------
                          53.48    1.567855           0   4644228           read
                          12.31    0.360885           0   1318652           write
                          11.46    0.335973           0   1318654   1318652 ioctl
                          10.86    0.318386           0   1318676           fstat
                          10.60    0.310744           0   1318654           lseek
                            0.41    0.011971           1     11886         7 open
                            0.30    0.008745           0     29637         1 fcntl
                            0.30    0.008670           1     11854           dup2
                            0.17    0.004915           0     17805           close
                            0.11    0.003308           1      5927           unlink
                            0.00    0.000000           0        11         4 stat
                            0.00    0.000000           0        33           mmap
                            0.00    0.000000           0        10           mprotect
                            0.00    0.000000           0         3           munmap
                            0.00    0.000000           0         8           brk
                            0.00    0.000000           0         8           rt_sigaction
                            0.00    0.000000           0        13           rt_sigprocmask
                            0.00    0.000000           0         1           access
                            0.00    0.000000           0         1           getpid
                            0.00    0.000000           0         1           execve
                            0.00    0.000000           0         1           uname
                            0.00    0.000000           0         2           getrlimit
                            0.00    0.000000           0         1           getuid
                            0.00    0.000000           0         1           getgid
                            0.00    0.000000           0         1           geteuid
                            0.00    0.000000           0         1           getegid
                            0.00    0.000000           0         1           getppid
                            0.00    0.000000           0         1           getpgrp
                            0.00    0.000000           0         1           statfs
                            0.00    0.000000           0         1           arch_prctl
                            0.00    0.000000           0         1           faccessat
                          ------ ----------- ----------- --------- --------- ----------------
                          100.00    2.931452               9996074   1318664 total

                          Не вдуплю, из-за чего ошибки ioctl :-]

                          ioctl(0, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or TCGETS, 0x7fffe7f0bd00) = -1 ENOTTY (Inappropriate ioctl for device)
                          lseek(0, 0, SEEK_CUR)                   = 0
                          fstat(0, {st_mode=S_IFREG|0600, st_size=3, ...}) = 0
                          read(0, "\320", 1)                      = 1
                          read(0, "\220", 1)                      = 1
                          fstat(1, {st_mode=S_IFCHR|0666, st_rdev=makedev(1, 3), ...}) = 0
                          ioctl(1, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or TCGETS, 0x7fffe7f0b4b0) = -1 ENOTTY (Inappropriate ioctl for device)
                          mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f6d389f9000
                          write(1, "A", 1)                        = 1
                          ioctl(0, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or TCGETS, 0x7fffe7f0bd00) = -1 ENOTTY (Inappropriate ioctl for device)
                          lseek(0, 0, SEEK_CUR)                   = 2
                          fstat(0, {st_mode=S_IFREG|0600, st_size=3, ...}) = 0
                          read(0, "\n", 1)                        = 1
                          write(1, "\n", 1)                       = 1
                          ioctl(0, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or TCGETS, 0x7fffe7f0bd00) = -1 ENOTTY (Inappropriate ioctl for device)
                          lseek(0, 0, SEEK_CUR)                   = 3
                          fstat(0, {st_mode=S_IFREG|0600, st_size=3, ...}) = 0
                          read(0, "", 1)                          = 0
                          dup2(10, 0)                             = 0
                          fcntl(10, F_GETFD)                      = 0x1 (flags FD_CLOEXEC)
                          close(10)                               = 0
                          ioctl(0, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or TCGETS, 0x7fffe7f0be40) = -1 ENOTTY (Inappropriate ioctl for device)
                          lseek(0, 0, SEEK_CUR)                   = 3
                          fstat(0, {st_mode=S_IFREG|0640, st_size=3, ...}) = 0
                          read(0, "", 1)                          = 0

                        • Bash Brainstorm  , !*! pavlinux, 04:47 , 15-Авг-13 (55)
                          >[оверквотинг удален]
                          > OSYMS="oeapcyxOEAHTPCBKMX"
                          > #    char=${BASH_REMATCH[2]}
                          > #    case $char in
                          > #        о) ochr=o;;
                          > #        [...]
                          > #    esac
                          >     val="${SYMS%$char*}"
                          >     ochr="${OSYMS:${#val}:1}"
                          >     ou="$ou$ochr"
                          > ---БенчИ-давай?!

                          Чё ты тут нахреначил??? Давай нормальный скрипт, читаемый и форматированный.  

  • Bash Brainstorm  , !*! pavlinux, 22:39 , 10-Янв-14 (56)
    А чо всё молчали??? :D


    cat file.txt | sed 'y/АВЕКМНОРСТХаеорсух/ABEKMHOPCTXaeopcyx/';




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

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