Модераторы: xvr
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> human readable текст как результат работы утилиты, дубль с темы nix общие вопросы 
V
    Опции темы
semibug
Дата 12.9.2012, 09:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 323
Регистрация: 27.3.2009

Репутация: нет
Всего: нет



Скажите ребята, это нормально - интерпретировать в своей программе стандартный вывод другой программы, расчитаный на человека. Судя по различным скриптам попадавшим под руку, это норма для Linux. Сам не давно начал программировать под Linux и кажется, что здесь, что-то не так. Ладно бы разобрать четко оформленный xml, а тут какие то строки, которые того и гляди заменят разработчики по своему желанию, как с этим жить?
PM   Вверх
boostcoder
Дата 12.9.2012, 10:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 16
Всего: 110



пример строк?
PM WWW   Вверх
Фантом
Дата 12.9.2012, 10:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вы это прекратите!
***


Профиль
Группа: Участник Клуба
Сообщений: 1516
Регистрация: 23.3.2008

Репутация: 1
Всего: 49



Цитата(semibug @  12.9.2012,  10:32 Найти цитируемый пост)
Скажите ребята, это нормально - интерпретировать в своей программе стандартный вывод другой программы, расчитаный на человека. Судя по различным скриптам попадавшим под руку, это норма для Linux. Сам не давно начал программировать под Linux и кажется, что здесь, что-то не так.


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

Цитата(semibug @  12.9.2012,  10:32 Найти цитируемый пост)
Ладно бы разобрать четко оформленный xml, а тут какие то строки, которые того и гляди заменят разработчики по своему желанию, как с этим жить? 


Опыт существования UNIX-подобных систем показывает, что как раз эти "какие-то строки" поддерживаются намного дольше, чем все другие методы хранения конфигурационных данных.  smile Впрочем, у текстовых конфигов тоже есть свои стандартные правила оформления, от XML они принципиально отличаются не так уж сильно.
PM   Вверх
xvr
Дата 12.9.2012, 10:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 20
Всего: 223



Цитата(semibug @  12.9.2012,  09:32 Найти цитируемый пост)
Скажите ребята, это нормально - интерпретировать в своей программе стандартный вывод другой программы, расчитаный на человека.

Нет, ненормально 

Цитата(semibug @  12.9.2012,  09:32 Найти цитируемый пост)
Судя по различным скриптам попадавшим под руку, это норма для Linux. 

И это тоже так  smile 

Цитата(semibug @  12.9.2012,  09:32 Найти цитируемый пост)
как с этим жить?

Очень настойчиво и регулярно  smile 

Обычно в большом дружном коллективе, где разные люди пишут разные скрипты, находится немало людей, которые делают тулзы которые парсят вывод других тулзов. Причем авторы этих 'других' ни сном ни духом не в курсе, что их выводы кто то там парсит. А потом начинаются забеги по офису с вырыванием волос на голове (иногда на чужой голове) с воплями - 'Кто уронил мою тулзу, да так, что осколки до сих пор собрать не могу ??!!!'

Когда на головах кончаются волосы начинается процесс осознания, что не только люди читают ваши ваши выдачи, и внедрение специально для 'не людей' машинно-читаемых форматов (это может быть все тот же текст, но на него налагают некоторые ограничения. В идеале делают альтернативный вывод в xml и пр)

PM MAIL   Вверх
semibug
Дата 12.9.2012, 11:50 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 323
Регистрация: 27.3.2009

Репутация: нет
Всего: нет



 smile 

Цитата(boostcoder @  12.9.2012,  10:39 Найти цитируемый пост)
пример строк? 

например вывод ping:
Код

semibug@ubuntu:~$ ping -c3 -w3 google.com
PING google.com (173.194.35.194) 56(84) bytes of data.
64 bytes from mobilemaps.clients.google.com (173.194.35.194): icmp_req=1 ttl=57 time=6.22 ms
64 bytes from mobilemaps.clients.google.com (173.194.35.194): icmp_req=2 ttl=57 time=5.07 ms
64 bytes from mobilemaps.clients.google.com (173.194.35.194): icmp_req=3 ttl=57 time=3.55 ms

--- google.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 3.552/4.951/6.226/1.095 ms

Вывод затем парсится так (проверяем наличие интернета):
Код

grep received | sed -e "s/.*mitted, //" | sed -e "s/ recei.*//"

Хотя и работает, но как то ссыкотно. Что там на уме у YOSHIFUJI Hideaki (или кто там счас сборкой пинга занимается) не понятно.

Цитата(Фантом @  12.9.2012,  10:53 Найти цитируемый пост)
Да нет, все так, это совершенно стандартное явление.

Цитата(xvr @  12.9.2012,  10:57 Найти цитируемый пост)
Нет, ненормально 

вот и я о том же..

Были бы мои программы, вывел бы в xml, и читать можно и все на своих местах для разбора.. 
Для Unix утилит надеюсь не придет в голову кому то радикально менять формат вывода..
А для самоделок, видимо придется расчитывать на авось..

Всем спасибы!



PM   Вверх
borisbn
Дата 12.9.2012, 21:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: нет
Всего: 135



Как вариант задавать regex снаружи. При смене формата вывода утилиты меняется только настроечный файл (ессно, если требуемые данные остались в выводе после изменений) 


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Программирование под Unix/Linux"
xvr
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой "Код".
  • Вопросы мобильной разработки тут
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr.

 
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема »


 




[ Время генерации скрипта: 0.0858 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.