Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Операционные системы » UNIX » UNIX Shell: sh, bash, zsh; Coreutils и ко.; sed, awk, perl;

Модерирует : ShriEkeR

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154

Открыть новую тему     Написать ответ в эту тему

digital422

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Товарищи вопрошающие! Если ваша система отлична от ГНУ, и в то же время вы желаете обойтись только дефолтными средствами, указывайте и то и другое сразу, пожалуйста.


UNIX Shell

 
   Это глобальная тема по юниксовой командной оболочке, как по интерактивной работе в командной строке, так и по шелл-скриптам. Ключевые слова: sh, bash, zsh, tcsh, busybox, readline, coreutils, cp, mv, ln, rm, ls, readlink, mkdir, touch, stat, date, test, sleep, chown, chmod, chattr, dd, df, du, env, echo, cat, less, man, grep, sort, findutils, find, locate, xargs, md5sum, cmp, diff, patch, ps, kill, killall, tar, gzip, bzip2, xz, mount, fdisk, parted, mkfs, fsck, e2fsprogs, mtools, ss, netcat, netstat, rsync, ssh, scp, sftp, lftp, ncftp, time, strace.
   Неинтерактивная обработка текста (sed, awk, perl) пока тоже здесь.
   Смотри в других ветках: wget, convert, montage, mogrify и др., gs, git, 7z, p7zip, soffice, mplayer, mencoder, vlc, vim, mc, mcedit, kioclient.
 
 

Hint! Русские маны (подустаревшие, не всегда полные и не всегда для вашей системы) можно попытаться найти на Опеннете, к примеру: bash, tar, grep.

 
Готовые решения:
  • commandlinefu.com
    Крупнейшая база полезных однострочников на командной оболочке с ранжированием на основе пользовательского голосования.
     
  • shell-fu.org
    Аналогично, но поменьше и формат записей более свободный, поэтому встречаются и однострочники, и развернутые скрипты, и просто советы.
     
  • Useful one-line scripts for sed
    Почти исчерпывающий список решений для тех случаев, когда sed незаменим. Более сложные скрипты с sed.sf.net — только для тех, кто знает толк... :)

 
Учебная литература:
  • Greg’s Wiki (http://mywiki.wooledge.org)
    Наиболее обширный авторский сборник постоянно обновляющихся материалов по Башу.

    1. Bash Pitfalls
      (Частые ошибки программирования на Баше: [1], [2], [3], [4], [5] — пер. на русский по сост. на дек. 2008 г.).
      Рассмотрены преимущественно ошибки, возникающие из-за непонимания отличия шелла от «нормальных» скриптовых языков. Если вы уже владеете, например, Перлом, то это вполне может быть ваше первое руководство для ознакомления с Башем.
    2. Bash FAQ
    3. Bash Guide
    4. Bash Reference Sheet
      Шпаргалка по частым синтаксическим оборотам.

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

 

Смело правьте и дополняйте шапку, однако не забывайте отписываться об исправлениях и сохранять исходный вариант под #.
Первый пост темы имел вид...

Всего записей: 360 | Зарегистр. 19-04-2003 | Отправлено: 18:51 16-05-2008 | Исправлено: qw12, 09:42 24-03-2020
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alukardd

Цитата:
Пойдём далее, с чего вы взяли что у меня достаточный уровень квалификации,

 
Ну так квалификация познаётся в сравнении - и объективно затраченных усилий, и соотношения затрат к результату (по-моему, неудовлетворительного: глядя на Ваши достижения в избранном Вами направлении, мне хочется как-то более эффективно распорядиться своим личным ресурсом.)
 
Я не хочу приобретать личное, "семейное" отношение вообще не к какому софту (не в обиду ни Вам, ни башу-шеллам-никсам будь сказано).
 
Есть вещи совсем безальтернативные, на мой взгляд: такова ZFS сейчас. Но это рациональный выбор инструмента внутри одного класса альтернатив, и если я когда-нибудь решу допустим перейти на btrfs - я  недрогнувшей рукою постараюсь не только от ZFS избавиться (везде, где она ещё будет требовать от меня какой-то поддержки), но и покрепче о ней забыть. (Ну, оставлю что-то на периферии сознания, необходимое и достаточное для передачи опыта... если к тому моменту появится кто-то в нём заинтересованный и при том недостаточно свободный, чтобы поступить как я).

Всего записей: 17745 | Зарегистр. 14-10-2001 | Отправлено: 18:17 28-03-2012 | Исправлено: LevT, 21:00 28-03-2012
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LevT
К определению квалификации могу сказать, что я испытываю некую симпатию к разнообразным shell'ам и написанию скриптов в целом (да, даже batch файлов, хотя и в много меньшей степени). И не считаю что стоит настолько широко подходить к вопросу написания скриптов, надо уметь решать имеющиеся задачи.
Время на унификацию скрипта уходит уйма, даже имея некие шаблоны и понимание того, что стоит улучшить и обобщить. Почему я занимаюсь данным только если скрипт: 1- достаточно большой и сложный (думаю, от 100строк), 2 - решает какую-то практическую задачу, а не просто для разовых действий был состряпан, 3 - в моём ресурсе имеется некоторое время, которое я готов потратить на данный (прошу заметить уже рабочий скрипт). Как-то так я вижу картину скриптоваяния.
 
Касательно вашего примера с ZFS, я примерно так же смотрю на разновидность MTA, когда мне в руки попал Exim (спасибо maintainer'ам Debian'а за то, что они сделали его почтовиком по умолчанию) я понял что остальные sendmail'ы и postfix'ы я видеть не хочу (Exchange и прочие Kerio даже не упоминаю по понятным причинам ). Но не могу сделать такой вывод для всего софта. Хотя общее стремление, наверное, таково и есть. А всё потому, что среди программ с аналогичным функционалом какая-то тебе всё-равно нравится больше, и поэтому ты стремишься пользоваться ей и везде её протолкнуть, и это нормальная реакция.
Увы, что бы нормально работать надо уметь общаться с кучей аналогичного софта и железа.
 
p.s. что-то мы пошли о высоком общаться...

----------
Microsoft gives you windows, linuх gives you the whole house...
I've been using Vim for about 4 years now, mostly because I can't figure out how to exit it.

Всего записей: 6571 | Зарегистр. 28-08-2008 | Отправлено: 22:20 28-03-2012
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ASE_DAG
 
Как всё-таки подать содержимое $LUNS на вход цикла

Код:
 
while read -r num guid size device ; do  
    ((lun_cnt++))  
    guids[$lun_cnt]=$guid  
    devices[$lun_cnt]=$device
    _log $guid $device)  
done
 

 
У меня по-прежнему не получается: многими способами тыкался, понимания так и нет.

Всего записей: 17745 | Зарегистр. 14-10-2001 | Отправлено: 10:11 29-03-2012
ndch

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Привет всем !
Подскажите пожалуйста литературу на русском в которой доходчиво объясняется о обработке текста и регулярных выражениях (sed, perl), желательно с примерами.
 
Т.е. ищу литературу (неважно электронную или бумажную), прочитав которую я смогу реализовать следующее:
в исходном текстового файле найти первое вхождение слова по regexp-у.
"отступить" от него назад до определенного слова, найденного по по regexp-у. установить "начало"
скопировать в новый файл весь текст от найденого  "начала" до конца файла.
 
Хочу научится, но мануалы мне поддаются с трудом.

Всего записей: 7005 | Зарегистр. 31-08-2008 | Отправлено: 10:34 29-03-2012
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alukardd

Цитата:
Время на унификацию скрипта уходит уйма, даже имея некие шаблоны и понимание того, что стоит улучшить и обобщить. Почему я занимаюсь данным только если скрипт: 1- достаточно большой и сложный (думаю, от 100строк), 2 - решает какую-то практическую задачу, а не просто для разовых действий был состряпан, 3 - в моём ресурсе имеется некоторое время, которое я готов потратить на данный (прошу заметить уже рабочий скрипт). Как-то так я вижу картину скриптоваяния.

 
Ну, а я связался со скриптами сразу именно ради пункта 2, и имею целью именно переносимость результата между разными системами, в которых есть рантайм stmf. А вот разные шеллы и разные способы достижения одинакового результата для меня скорее обуза.  
 
А ещё я отчасти эстет, потому уродливые/непонятные способы меня не устраивают. Подозреваю, что в шеллах есть своя красота, но ресурса ею проникаться у меня сейчас нет.  Так что мне сейчас нужен единственный способ, от которого не будет воротить.
 
 

Цитата:
Касательно вашего примера с ZFS, я примерно так же смотрю на разновидность MTA, когда мне в руки попал Exim (спасибо maintainer'ам Debian'а за то, что они сделали его почтовиком по умолчанию) я понял что остальные sendmail'ы и postfix'ы я видеть не хочу (Exchange и прочие Kerio даже не упоминаю по понятным причинам ).  

 
Спасибо, Ваша рекомендация в этом контексте для меня важна.
 
Что касается эксченджа - то он MTA постольку-поскольку. Базовый его функционал - это гранулярный шаринг папочек в мейлбоксах юзеров локалки.
 
Понятно, что мелкософт собирает сливки со своей инвестиции в инфраструктуру  AD, которая позволяет бесплатно для неё получить уйму сопутствующих плюшек... Но всё-таки интересно, есть ли софт в юниксах, изначально предназначеный для той же цели? (а не подражающий эксченджу и в первую очередь озабоченный совместимостью с аутлуком).
 
 
Добавлено:
 
На практике юзеры не пользуются discretional access control ни в файловой системе, ни в аутлуке - потому я могу смело считать, что этого клиентского функционала не существует.
 
Всё равно всё одминится одмином. Аутлук ещё берёт красивостью морды - но тут его способен заменить хороший веб-интерфейс...
 
 
Добавлено:
ndch

Цитата:
литературу на русском в которой доходчиво объясняется о обработке текста и регулярных выражениях (sed, perl),  

 
Правильную литературу не подскажу, потому что сам когда-то провалил аналогичный проект: сделал нужное в винворде.
 
А вот что я точно выяснил в процессе: регэкспы это скорее "принцип", чем "технология". Рантайм регэкспов в каждой утилите свой, примеры из одной и полученный с нею опыт применимы к другой весьма условно.
 
 
 
Добавлено:
 
Вот бы научиться приобретать опыт именно внутри "принципов"... только тогда  в моих глазах обретут смысл затраты на изучение отдельных утилит или шеллов, когда налицо будет полная карта от принципа до  рекомендованной коллегами реализации.
 
Опять же, выявятся источники экономии, вроде упомянутого выше принципа discretional access control. Оказывается, в моих условиях его реализации в клиентском софте - не более чем оверхед.

Всего записей: 17745 | Зарегистр. 14-10-2001 | Отправлено: 10:41 29-03-2012 | Исправлено: LevT, 14:59 29-03-2012
ndch

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LevT
То что регэкспы это концепция а не технология я понимаю.
Хотелось бы научиться пользоваться sed и perl для массовой обработки текстовых данных. Обладаю практически нулевыми знаниями.
 
В шапке написано "Неинтерактивная обработка текста (sed, awk, perl) пока тоже здесь" поэтому и написал сюда.
 
Может быть кто-нибудь ещё что-то посоветует ?
 
Для начального понимания regexp-ов помогает regexbuddy.

Всего записей: 7005 | Зарегистр. 31-08-2008 | Отправлено: 12:59 29-03-2012 | Исправлено: ndch, 13:55 29-03-2012
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

sed-ом наверное дешевле всего обойдётся проникнуться, прогнав "полезные примеры" из шапки параллельно с RegexBuddy
 
Останутся особенности неинтерактивной обработки никсовыми утилитами.
 
Закрепить опыт можно будет, повторив выученные уроки с использованием perl.

Всего записей: 17745 | Зарегистр. 14-10-2001 | Отправлено: 13:48 29-03-2012
ndch

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LevT
Подскажите а есть нечто вроде "задачника с решениями" по sed ?
 
Понимаю что Вы упомянули "USEFUL ONE-LINE SCRIPTS FOR SED" но хотелось бы именно "задачника с решениями".
На первых порах задачник на русском был бы очень уместен.

Всего записей: 7005 | Зарегистр. 31-08-2008 | Отправлено: 14:03 29-03-2012 | Исправлено: ndch, 14:04 29-03-2012
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Это к сожалению не ко мне, а к здешним экспертам.

Всего записей: 17745 | Зарегистр. 14-10-2001 | Отправлено: 14:07 29-03-2012
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LevT
Цитата:
sed-ом наверное дешевле всего обойдётся проникнуться
не соглашусь ну ни как. Sed это просто бездонная яма различных функций и фич, на мой взгляд awk намного проще и удобнее, хотя на sed многие вещи будут выглядеть по короче, но при этом неискушенному разуму намного менее понятным.
 
ndch
В шапке есть ссылка на примеры на различных языках в т.ч. и sed. Есть интересный документик - Полезные одно-строчные скрипты sed (а, эта ссылка тоже есть в шапке, просто на opennet её читать поудобнее чутка)
 
LevT
По поводу $LUNS:
Код:
#!/bin/bash
LUNS=$(du | head)
while read -r x y; do
    echo -e "x is $x\ny is $y"
done <<< "$LUNS"


----------
Microsoft gives you windows, linuх gives you the whole house...
I've been using Vim for about 4 years now, mostly because I can't figure out how to exit it.

Всего записей: 6571 | Зарегистр. 28-08-2008 | Отправлено: 14:59 29-03-2012 | Исправлено: Alukardd, 15:04 29-03-2012
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Отлично, спасибо!
Непосредственная моя сиюминутная цель достигнута.
 
Теперь уточняю ради понимания:  
1) в чём смысл третьего <   ?    
2) Почему пробел после него не вызывает ошибку?
 
Я на самом деле пытаюсь решить более сложную задачу: интерпретировать смысл трансформации программы и понять соображения разработчиков баша, выбравших именно такой синтаксис для выражения этого смысла.
 
Даже тяжелое историческое наследство не обязательно влечёт хаос: люди-то умные шелл допиливали.. По-моему, правильный подход к изучению правильных инструментов - пытаться думать как их разработчики.
 
 
Добавлено:

Цитата:
не соглашусь ну ни как.

 
По моему, предмет спора отсутствует.  
sed-ом собрался проникаться ndch.  А я предложил навскидку экономный алгоритм достижения им своих целей, с учётом объявленного опыта и подручных инструментов.

Всего записей: 17745 | Зарегистр. 14-10-2001 | Отправлено: 15:23 29-03-2012 | Исправлено: LevT, 16:01 29-03-2012
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LevT
 
> 1) в чём смысл третьего <?
 

Цитата:
  Here Documents
       This type of redirection instructs the shell to read input from the current source until a line containing only delimiter (with no trailing blanks)  is  seen.
       All of the lines read up to that point are then used as the standard input for a command.
 
       The format of here-documents is:
 
              <<[-]word
                      here-document
              delimiter
 
   <...>
 
   Here Strings
       A variant of here documents, the format is:
 
              <<<word
 
       The word is expanded and supplied to the command on its standard input.

 
> 2) Почему пробел после него не вызывает ошибку?
А с какого бы ему вызывать ошибку? Может возникнуть иной вопрос: почему лидирующий пробел не попадает во ввод, но это потому что «the word is expanded», а раскрытие это, в частности, и подразумевает.
 
P.S. Но я бы в вашем примере вообще переменной не использовал.
P.P.S. Откуда цитата, я думаю, догадываетесь.
 


 
ndch

Цитата:
Подскажите пожалуйста литературу на русском в которой доходчиво объясняется о обработке текста и регулярных выражениях (sed, perl), желательно с примерами.

 
> Подскажите, пожалуйста, литературу
Свою любимую литературу я уже перечислил в шапке. Если мне было чего туда добавить, то я бы добавил. ;-)
 
> на русском
А вообще, вот здесь у вас основной затык.
 

Цитата:
в исходном текстового файле найти первое вхождение слова по regexp-у.
"отступить" от него назад до определенного слова, найденного по по regexp-у. установить "начало"
скопировать в новый файл весь текст от найденого  "начала" до конца файла.

 
На Седе в общем случае это вообще не реализовать, только условившись, что два искомых слова находятся в одной строке (причем «строке» в узком смысле — последовательности символов от \n до \n — широкого толкования Сед, афайк, не допускает). Но даже так здесь лучше не пользоваться не Седом.


----------
Dmitry Alexandrov <321942@gmail.com> [PGP] [BTC]

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 15:50 29-03-2012 | Исправлено: ASE_DAG, 15:56 29-03-2012
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LevT
Цитата:
в чём смысл третьего <   ?
так гласит великий man bash сразу после here documents есть here strings
Цитата:
Почему пробел после него не вызывает ошибку?  
а собственно почему должно?
Если вы о том пробеле, что Вам т.ASE_DAG нашёл, то вот Вам полная картина ситуации:
Код:
#!/bin/bash
LUNS=$(du | head)
 
# Process Substitution
while read -r x y; do
    echo -e "x is $x\ny is $y"
done < <(cat /etc/resolv.conf)
 
# Here Documents
while read -r x y; do
    echo -e "x is $x\ny is $y"
done << EOF
some text
one more text
EOF
 
# Here Strings
while read -r x y; do
    echo -e "x is $x\ny is $y"
done <<< "$LUNS"
 
# Redirecting Input
while read -r x y; do
    echo -e "x is $x\ny is $y"
done < "/etc/resolv.conf"


----------
Microsoft gives you windows, linuх gives you the whole house...
I've been using Vim for about 4 years now, mostly because I can't figure out how to exit it.

Всего записей: 6571 | Зарегистр. 28-08-2008 | Отправлено: 15:55 29-03-2012 | Исправлено: Alukardd, 15:56 29-03-2012
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ASE_DAG
Alukardd
Спасибо большое!
 

Цитата:
P.P.S. Откуда цитата, я думаю, догадываетесь.  

 
Дык я упоминал здесь heredocs на предыдущей странице - стало быть, в курсе  названия этого предмета в рамках баша ))
 
Вот не оставляет меня мысль, что HERE это репрезентация вычислений вне монады IO, т.е. с их помощью можно попробовать оставаться в рамках почти чистого функционального стиля (без сохранения состояний). Разумеется, там, где именно это эстетствование не влечёт серьёзного ущерба.
 
А пытал я вас потому, что разбирать многострочные переменные мне всё-таки надо было научиться, и желательно не абы как, а именно стильно )

Всего записей: 17745 | Зарегистр. 14-10-2001 | Отправлено: 16:18 29-03-2012
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LevT
Я эти словосочетания только от вас услышал и мб запомню) А так я оперирую задачами и языковыми конструкциями. У меня с теорией всегда были проблемы
 
За красивыми решениями это к ASE_DAG, я реализую ближайшим известным мне методом, а уже после если возвращаюсь к скрипту, то пробую навести порядок.

----------
Microsoft gives you windows, linuх gives you the whole house...
I've been using Vim for about 4 years now, mostly because I can't figure out how to exit it.

Всего записей: 6571 | Зарегистр. 28-08-2008 | Отправлено: 16:23 29-03-2012
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Я надеюсь, что у разработчиков баша не было проблем с теорией, и они пытались подогнать к ней синтаксис (пускай и изначально на неё не ориентированный, по причине совместимости с sh)
 
 
Добавлено:
Не факт, что им это удалось в полной мере, потому что это не было их основной целью.  
 
 
 
Добавлено:

Цитата:
А так я оперирую задачами и языковыми конструкциями.

 
Смысл - причём, оказывается, универсальный - есть даже в синтаксисе естественных языков. А уж у разработчиков языков искусственных была возможность развернуться, потому что голый утилитаризм скучен, а люди они творческие.
 
Если поступать наоборот и ради обогащения семантики выжимать досуха существующий синтаксис - получается брейнфак, не поддающийся поддержке. То есть опять же развлечение, но для меня - пользователя - бесполезное.

Всего записей: 17745 | Зарегистр. 14-10-2001 | Отправлено: 16:32 29-03-2012
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ndch
Продолжая свою мысль:
 

Цитата:
> в исходном текстового файле найти первое вхождение слова по regexp-у.
> "отступить" от него назад до определенного слова, найденного по по regexp-у.  
> установить "начало", скопировать в новый файл весь текст от найденого  "начала" до конца файла.
 
На Седе в общем случае это вообще не реализовать, только условившись, что два искомых слова находятся в одной строке (причем «строке» в узком смысле — последовательности символов от \n до \n — широкого толкования Сед, афайк, не допускает). Но даже так здесь лучше не пользоваться не Седом.

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

Код:
#!/usr/bin/gawk -f
BEGIN {
    FIRST_REGEX = "foo";
    SECOND_REGEX = "bar";
}
P==0 && match($0, SECOND_REGEX) {
    delete S;
    $0 = substr($0, RSTART);
    j = 0;
    P = 1;
}
P==1 && match($0, FIRST_REGEX) {  
    for (i in S) print S[i];
    P = 2;
}
P==1 { S[j] = $0 }
P==2


----------
Dmitry Alexandrov <321942@gmail.com> [PGP] [BTC]

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 17:36 29-03-2012
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Возможно, вскоре я решусь поставить что-то такое, что позволяет вызывать из баша платформенные сишные либы в солярке, и в нём разобраться. Если такое существует в природе. ))  
 
Выше строго сейчас предпочтительный вариант, ради него я готов прошерстить  комментарии к платформенным функциям и их заголовки. Но если я хочу невозможного - то программа-минимум: чем проще поковырять из баша XML? Надо нацелить парсер на определённый атрибут и сравнить его значения до вызова stmfadm и после него. Сгенерирую серию изменений - и попробую понять, что именно делают вызовы.
 
Разницу я по-тупому вижу диффом, но поскольку атрибут бинарный, глазами  анализировать отличия влом. Как-то оно должно быть связано с guid... (как минимум, но боюсь, этим не ограничится)
 
 
root@nex3:/zones/dsu/nfs/rootfiles# diff svccfg-stmf.backup svccfg-stmf-good.backup  
Подробнее...
 
Иными словами, намереваюсь подёргать те самые либы как чОрные ящики и отреверсить реализацию нек-рых функций. Не хочется доходить совсем уж до ручки: рытья в сишной реализации тех самых либов. Что-нибудь менее для меня сейчас трудоёмкое.
 
Ну и наконец последний вариант - который мне также представляется чрезмерно трудным, и потому я решусь на него только при крайней нужде - ставить полноценный сишный каркас для дёрганья тех самых солярных платформенных либов. В чём он должен состоять, ума не приложу.
 
 
Помогите советом: может быть, я недооцениваю или переоцениваю трудоёмкость разных вариантов.
Конечная цель предприятия - не полный контроль (возможный только на девелоперской машине), а несколько более полное понимание архитектуры подсистемы, чем то, что извлекается из манов к утилитам *adm   Сомнительно, чтобы я решился когда-нибудь править конфиги в обход этих утилит.

Всего записей: 17745 | Зарегистр. 14-10-2001 | Отправлено: 18:53 29-03-2012 | Исправлено: LevT, 19:17 29-03-2012
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LevT
Ну XML можно парсить внешними тулзами (4xpath, например), или разгребать чем-то вроде awk.
 
По поводу красивого diff'а, то единственное из того, что я знаю, что может показать посимвольную разницу с раскраской это vimdiff. Минус очевиден - это интерактивная программа, но можно вывести его результат в html файл и закрыть vim, что бы скрипт бегал дальше не останавливаясь.

----------
Microsoft gives you windows, linuх gives you the whole house...
I've been using Vim for about 4 years now, mostly because I can't figure out how to exit it.

Всего записей: 6571 | Зарегистр. 28-08-2008 | Отправлено: 19:31 29-03-2012
ndch

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ASE_DAG

Цитата:
На Седе в общем случае это вообще не реализовать, только условившись, что два искомых слова находятся в одной строке

Perl в качестве "редактора" в таком случае больше подходит  ?
Может быть что-то более подходящее для обработки текстовых файлов посоветуете ?
Про рекомендацию gawk-а понял.

Всего записей: 7005 | Зарегистр. 31-08-2008 | Отправлено: 20:09 29-03-2012 | Исправлено: ndch, 20:12 29-03-2012
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154

Компьютерный форум Ru.Board » Операционные системы » UNIX » UNIX Shell: sh, bash, zsh; Coreutils и ко.; sed, awk, perl;


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru