Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Sed: -e : Invalid range end  (Прочитано 802 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн as_lan

  • Автор темы
  • Любитель
  • *
  • Сообщений: 99
    • Просмотр профиля
Sed: -e : Invalid range end
« : 15 Ноября 2013, 10:53:22 »
Добрый день. Занялся на досуге переделкой одного хорошего скрипта-шейпера, который был сделан для роутеров на прошивке "От Олега". В свое время этот скрипт был очень удобен. Но роутер давно уже на полке, а в роли шлюза полноценая система на Ubuntu. А необходимость в шейпере только возрастала.  Конечно какой-никакой шейпер был, но хотелось именно этот, так как отлично отрабатывал у меня на стареньком роутере. И был довольно гибок. В принципе в данный момент "шейперная" часть полностью отрабатывает (пришлось немного подпилить его, так как сразу под Ubuntu на завелся, были свои нюансы), но не удается заставить показывать статистику, при запуске выдает ошибку

sed: -e expression #1, char 226: Invalid range end
Ошибка в этом участке
stat=`tc -s class ls dev imq${j} | sed -re '/./{H;$!d}; x; s/\n//g
        s/root/parent 1:0/
        /prio/!{s/rate(.*)Sent/prio 0 rate\1Sent/;}
        /Sent.*rate/!{s/Sent(.+)\)/Sent\1\)\n rate 0'$rte' 0pps/}
        /pps/!{s/Sent(.*)rate ([A-z0-9]*)/Sent\1rate \2 0pps/}
        s/.*htb [0-9]*:(.*) parent [0-9]*:([0-9]*) .*prio ([0-9]*) rate ([0-9A-z]*) ceil ([0-9A-z]*).*Sent ([0-9]*) bytes ([0-9]*) pk
        ' | sort -r | awk '

Если еще точнее то где-то тут
/pps/!{s/Sent(.*)rate ([A-z0-9]*)/Sent\1rate \2 0pps/}
В sed и его синтаксисе я слаб. Поэтому не могу увидеть ошибку. Поэтому прошу помощи в допиливании)

Пользователь решил продолжить мысль 15 Ноября 2013, 12:58:52:
отвечу сам себе. Проблема была в неправильно указанном диапазоне. Нужно было [a-Z0-9], а не [A-z0-9]
« Последнее редактирование: 15 Ноября 2013, 12:59:42 от as_lan »

 

Страница сгенерирована за 0.017 секунд. Запросов: 21.