The OpenNET Project / Index page

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



Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Shell скрипты)
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Bash Brainstorm  , pavlinux (ok), 23-Мрт-13, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


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

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


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

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

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

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

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

25. "Bash Brainstorm  "  +/
Сообщение от Andrey Mitrofanov (?), 30-Июн-13, 19:36 
>>>> Задача: Заменить в тексте все буквы русского алфавита на схожие по-написанию латинские.
>>> #!/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 тему жодно закрыть.

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

26. "Bash Brainstorm  "  +/
Сообщение от Andrey Mitrofanov (?), 30-Июн-13, 19:37 
> $ 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

:/ ''while IFS= read''

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

27. "Bash Brainstorm  "  +/
Сообщение от John (??), 30-Июн-13, 22:09 
>>> Задача: Заменить в тексте все буквы русского алфавита на схожие по-написанию латинские.
>> #!/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

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

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

Ваще жопа, проц на 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


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

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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