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


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

Автор Тема: парсер  (Прочитано 863 раз)

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

Оффлайн Samison

  • Автор темы
  • Новичок
  • *
  • Сообщений: 30
    • Просмотр профиля
парсер
« : 25 Февраль 2009, 17:39:41 »
Нужно написать 2 одинаковые программы - на баше и перле. Там делов то на пару строк, просто я в этом ничего не соображаю :(

нужна прога - парсер.  Ну например что бы передать ей дату командой cal, после чего програма должна обрезать всё кроме времени (час:минута)... Мне б хотя б такой пример (точнее 2 примера - баш и перл). А их я уже перепишу для своих нужд.

Заранее спасибо. Я так понимаю там совсем немного писанины. Так что кому не лень - помогите плз :)
« Последнее редактирование: 26 Февраль 2009, 20:27:46 от Samison »

Оффлайн Shecspi

  • Активист
  • *
  • Сообщений: 386
  • Launch Hip-Hop
    • Просмотр профиля
    • PHP-GTK по-русски
Re: помогите плиз
« Ответ #1 : 25 Февраль 2009, 19:57:46 »
Может
date '+%H:%M'

Оффлайн Samison

  • Автор темы
  • Новичок
  • *
  • Сообщений: 30
    • Просмотр профиля
Re: помогите плиз
« Ответ #2 : 25 Февраль 2009, 21:37:56 »
Да нет :) Я вырезку ч:м из cal'а дал как пример. Мне просто нужен такой парсер. Нужна хотя бы начальная структура, дальше я всё сделаю сам.

Оффлайн Samison

  • Автор темы
  • Новичок
  • *
  • Сообщений: 30
    • Просмотр профиля
Re: помогите плиз
« Ответ #3 : 26 Февраль 2009, 17:15:13 »
ап!

Оффлайн wl

  • Старожил
  • *
  • Сообщений: 1393
    • Просмотр профиля
Re: помогите плиз
« Ответ #4 : 26 Февраль 2009, 17:59:03 »
ап!
... И тигры у ног моих сели!
Ап! - И с лестниц в глаза мне глядят.

пел когда-то знаменитый советский певец Михаил Дартаньянович Боярский.

Чего требуется-то?
Что конкретно парсим?
Логи? Конфиг-файлы? XML? HTML? Аргументы командной строки? Язык по правилам LALR грамматики?

PS. Тема сообщения тоже впечатляет своей конкретикой и ясностью.
« Последнее редактирование: 26 Февраль 2009, 18:02:47 от wl »
На свете феньки есть такие, брат Горацио, которых лохи просто не секут. (Шекспир, "Гамлет", вольный перевод)

Оффлайн Samison

  • Автор темы
  • Новичок
  • *
  • Сообщений: 30
    • Просмотр профиля
Re: парсер
« Ответ #5 : 26 Февраль 2009, 20:33:45 »
Требуется парсер результата комманд в терминале. Например сделать это в виде конвеерной обработки. Пример я привёл - выдрать из cal"а часы:минуты.

Не знаю можно ли сделать такое на баше, но на перле я так понимаю нужно юзать регулярки. С самими регулярками я знаком, а вот с синтаксисом перла - нет.

PS. Тема сообщения тоже впечатляет своей конкретикой и ясностью.

сменил)
« Последнее редактирование: 26 Февраль 2009, 20:35:54 от Samison »

Оффлайн SkeL2007

  • Участник
  • *
  • Сообщений: 204
    • Просмотр профиля
Re: парсер
« Ответ #6 : 26 Февраль 2009, 21:14:45 »
У тебя программа с искусственным интеллектом??? Сама определяет, что ей передали и что нужно отрезать? :idiot2:

Оффлайн zera

  • Любитель
  • *
  • Сообщений: 69
    • Просмотр профиля
Re: парсер
« Ответ #7 : 27 Февраль 2009, 04:13:11 »
Samison, используйте регекспы. начальная структура man regex.
обратите внимание на различие перловых и башевых регекспов.
вы создали отличный топик, потому даже добавлю, чтобы набирать регекспы используйте клавиатуру
зы ухожу-ухожу :)

Оффлайн wl

  • Старожил
  • *
  • Сообщений: 1393
    • Просмотр профиля
Re: парсер
« Ответ #8 : 27 Февраль 2009, 11:57:33 »
Требуется парсер результата комманд в терминале. Например сделать это в виде конвеерной обработки. Пример я привёл - выдрать из cal"а часы:минуты.

Не знаю можно ли сделать такое на баше, но на перле я так понимаю нужно юзать регулярки. С самими регулярками я знаком, а вот с синтаксисом перла - нет.

Непосредственно баш такое не умеет.
Просто что-то вырезать из строки может команда cut. У самого баша есть некоторые возможности склейки строк.
Подробнее - в Advanced Bash Scriping Guide.

Язык awk намного мощнее. Из башевого скрипта вызываем awk со скриптом в параметре и вуаля.

Получить результат работы команды и в перле, и в баше можно, поставив команду в бэктики (``):
dt=`date` В результате в переменной dt окажется результат вывода date.

dw=`date|cut -f 1 -d ' '`В переменную dw запишется день недели.

Руководств по программированию и на баше, и на перле в сети полно, яндекс-гугл в зубы и вперед!

http://pleac.sourceforge.net/ - тут куча примеров и рецептов решения отдельных задач, в том числе и на перле.

PS. Тема сообщения тоже впечатляет своей конкретикой и ясностью.
сменил)
Не помогло.
« Последнее редактирование: 27 Февраль 2009, 12:08:59 от wl »
На свете феньки есть такие, брат Горацио, которых лохи просто не секут. (Шекспир, "Гамлет", вольный перевод)

Оффлайн Samison

  • Автор темы
  • Новичок
  • *
  • Сообщений: 30
    • Просмотр профиля
Re: парсер
« Ответ #9 : 27 Февраль 2009, 17:16:59 »
Нц наконец то :) Спасибо :)

 

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