LINUX.ORG.RU

Шаблоны и обработка строк в shell-скриптах

 ,


0

0

Сергей Супрунов перевел статью Питера Сибаха (Peter Seebach) "Patterns and string processing in shell scripts", которая является отрывком из недавно изданной книги "Beginning Portable Shell Scripting" (Основы разработки переносимых скриптов на языке командной оболочки).

Программирование на языке командной оболочки тесно связано с обработкой строк. Часто при этом бывает нужно определить, соответствует ли заданная строка заданному шаблону; этот процесс называется сопоставлением с шаблоном. Командная оболочка предоставляет довольно развитые средства сопоставления. К тому же многие стандартные утилиты Unix, такие как grep и sed, также предоставляют функции сопоставления с шаблоном. Обычно эти программы используют более мощную разновидность сопоставления, называемую "регулярными выражениями". Регулярные выражения, поскольку они отличаются от шаблонов командной оболочки, играют решающую роль для максимально эффективной работы shell-скриптов. Так как сама оболочка не обладает встроенной поддержкой переносимых регулярных выражений, программы на shell во многом полагаются на внешние утилиты, многие из которых используют регулярные выражения.

>>> Подробности

★★★

Проверено: Shaman007 ()

даже не смешно

в первом же примере ошибка

/и да, я сходил по ссылке

anonymous
()

Жалко книг таких в продаже пол года назад небыло... пришлось по сканам шелл учить((

anonymous
()
Ответ на: комментарий от anonymous

>>Питер Сибах осилил shell scripting?

нет, пока он осилил только конструкцию case

anonymous
()

Слишком уж много новостей по теме шелла.

balodja ★★★
()

Всё полезно, что в shell полезло.

Да ладно вам ругаться, хорошая штука сценарии оболочки. От ещё одного учебника хуже не станет.

Camel ★★★★★
()

Ахтунг, вендузятники детектед повсюду!

Господа!

1) Перевод shell как "оболочка" -- это ЧИСТЕЙШИЙ (!!!) микрософтизм, поскольку у них этим словом называется проводник и та недонортонкоммандеровская приблуда в ДОСе, которая была до него.

В юниксе shell -- это С САМОГО НАЧАЛА "интерпретатор команд", на худой конец "командный процессор" как КЛАСС ПРОГРАММ -- или просто название программы shell. В данной статье следует придерживаться ТРЕТЬЕГО варианта перевода, так как csh -- это тоже интерпретатор команд, но язык сценариев у него другой.

2) В кино script это "сценарий", и в программировании тоже: по смыслу и то, и другое -- текст с указаниями, которые должны быть интерпретированы (в одном случае актерами, в другом -- интерпретатором). Транслитерация "скрипт" безобразна и безграмотна: а ну-ка, переведите название рубрики "Hey, Scripting Guy!" из MSDN Mag! "Эй, скриптюк"?! "Эй, скриптовщик"?! А в статьях этой рубрики есть прямые намёки на Голливуд...

Кроме того, русское ухо слышит в этом буквосочетании греческое "крипт" (а греческие заимствования в русском языке на 99% являются неотъемлемой частью языка уже более 1000 лет), что наводит на явно неверные ассоциации с шифрованием. "Сценарий" -- слово заимствованное, но давно (250 лет) и прочно. И неча плодить ненужные ублюдочные транслитерации.

Orlusha ★★★★
()
Ответ на: комментарий от anonymous

Ъ Шаблоны и обработка строк

лор-эффект, однако :)

По теме... как понимаю, статья была впервые опубликована в хакер.ру?

anonymous
()
Ответ на: комментарий от firsttimeuser

> херасе луч поноса

Примерно такие аргументы высказываем, когда вышибаем очередную быдлотранслитерацию из словаря заказчика.

Из сана вышибли всё дерьмо: скоро ждите обновлённый словарик. И по яве тоже.

С микрософтом последнее время стало хуже: в качестве LL они взяли контрактного мжика из Логруса, а того на кулхацкерский язычок потащило. Странно что-то... Или микрософт собирается окончательно забить болт на десктопные системы (потому как тяжёлыми стали неприемлемо, сцуки!) и заниматься только серверными, а десктопную среду поставлять в любой обозреватель через Live! ? Похоже на то, на вендодесктопокапец.

Orlusha ★★★★
()
Ответ на: комментарий от Orlusha

>Похоже на то, на вендодесктопокапец

Ждем вендосерверкапец.

drull ★☆☆☆
()
Ответ на: комментарий от nikitos

в переводе не нуждаюсь. просто жду вендекапца.

drull ★☆☆☆
()
Ответ на: Ахтунг, вендузятники детектед повсюду! от Orlusha

Выдыхай!

Раз его назвали shell, значит он и будет shell, а у перевода shell я что-то не заметил варианта "командный процессор".

Это тот единственный из множества аргументов, что мне было не лень на подобный вздор привести. Есть и другие, но среди этого графоманского потока сознания они будут себя чувствовать невостребованными.

malices_gossips ★★★
()
Ответ на: комментарий от anonymous

>Жалко книг таких в продаже пол года назад небыло... пришлось по сканам шелл учить((

Advanced Bash Scripting Guide доступен с черте каких времен. Даже в переводе. У вас была нужда конкретно, держа в руках бумагу, читать что ли?

malices_gossips ★★★
()
Ответ на: комментарий от skwish

меньше надо быдлокодить на быдлоязычках.

anonymous
()

Ничего так, есть некоторые интересные вещи. А товарищей, которые не могут сопоставить англ. текст с русским и найти (специально для себя) свои собственные варианты перевода - остается только пожалеть.

babich
()
Ответ на: Ахтунг, вендузятники детектед повсюду! от Orlusha

> Господа! > ...

Про script согласен, а про shell - нет.

Ну что ж поделаешь, раз его shell'ом назвали? Думаете, англоговорящие люди воспринимают слово shell как "командный процессор", а не именно как "оболочка", она же "раковина" (как у моллюсков)?

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

const86 ★★★★★
()
Ответ на: комментарий от Orlusha

> Примерно такие аргументы высказываем, когда вышибаем очередную быдлотранслитерацию из словаря заказчика.

Как обычно, вам уважуха! +много.

Сам я в русском не силён, но даже меня достают не по детски. Букву Ё не пишут, в устной речи ударения безграмотные вообще, постоянные заимствования на пустом месте, как украиняне, ей богу!. Одни Пайтон и Джава чего стоят!

alx_me ★★☆
()
Ответ на: комментарий от skwish

> Чорт. Увидел слово "шаблоны", подумал про паттерны проектирования bash скриптов.

/me подумалось что регэкспы ;)

real_maverick ★★★
()

> Основы разработки переносимых скриптов на языке командной оболочки

Переносимых куда, простите? Из bash'а в csh? Или куда еще можно перенестити скрипты на языке командой оболочки?

PS по ссылке сходил, неинтересно

timpson
()
Ответ на: комментарий от malices_gossips

> У вас была нужда конкретно, держа в руках бумагу, читать что ли?

Просто подумай, в каких случаях бывает нужда, да ещё чтоб с бумагой... ;)

Slavaz ★★★★★
()
Ответ на: Ахтунг, вендузятники детектед повсюду! от Orlusha

Ахтунг, ламер детектед.

>Перевод shell как "оболочка" -- это ЧИСТЕЙШИЙ (!!!) микрософтизм, поскольку у них этим словом называется проводник и та недонортонкоммандеровская приблуда в ДОСе, которая была до него.

Всё в точности наоборот. Товарищи, не слушайте Orlush'у, он не читатель, он писатель. В любой книжке о Unix'овых и GNU/Linux'овых системах написано про оболочку, а в книгах о DOS'е и работе в командной строке Windows написано про командный интерпретатор.

Camel ★★★★★
()
Ответ на: комментарий от const86

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

Нет, термин "оболочка" абсолютно адекватен поскольку интерпретатор команд скрывает детали операционной системы за своим интерфейсом. (мой вольный перевод из википедии http://en.wikipedia.org/wiki/Unix_shell ) Собственно название статьи тоже отражает этот факт поскольку речь идет о "переносимых" скриптах (сценариях, sry).То что термин "скрипт" - жаргонизм, согласен, но многие общеупотребительные слова были когдато жаргонизмами, например "водка". И вообще лично я против прямых переводов вроде "ногомячей", "подпутей", "воздухопространств" и т.п.

A-234 ★★★★★
()
Ответ на: комментарий от A-234

> Нет, термин "оболочка" абсолютно адекватен поскольку интерпретатор команд скрывает детали операционной системы за своим интерфейсом.

Верно, просто звучит как-то "не так". Хотя возможно, это мне зря кажется...

const86 ★★★★★
()

>Сергей Супрунов перевел статью Питера Сибаха (Peter Seebach) "Patterns and string processing in shell scripts", которая является отрывком из недавно изданной книги "Beginning Portable Shell Scripting"

Он ее точно перевел?

Siado ★★★★★
()

Ничего нового для себя не открыл, но новичкам статья может пригодиться.

Demon37 ★★★★
()
Ответ на: комментарий от const86

> Думаете, англоговорящие люди воспринимают слово shell как "командный процессор", а не именно как "оболочка", она же "раковина" (как у моллюсков)?

Они его понимают как название программы. НЕПЕРЕВОДИМОЕ И НЕТРАНСЛИТЕРИРУЕМОЕ. Как Internet Explorer. И это самое смешное, что я понял из общения с англоговорящими коллегами...

Orlusha ★★★★
()
Ответ на: комментарий от A-234

> Нет, термин "оболочка" абсолютно адекватен поскольку интерпретатор команд скрывает детали операционной системы за своим интерфейсом. (мой вольный перевод из википедии http://en.wikipedia.org/wiki/Unix_shell )

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

> Собственно название статьи тоже отражает этот факт поскольку речь идет о "переносимых" скриптах (сценариях, sry).

По поводу "переносимости" уже заметили раньше. Ни добавить, ни убавить. :)

> То что термин "скрипт" - жаргонизм, согласен,

Это не жаргонизм. Это замена правильного слова с правильным смыслом на транслитерацию с целью сделать текст менее понятным "непосвящённым", "быдлу" или "лохам". Во французском это называется "арго", в русском "феня" или "сакральный язык", в английском jive или lingo. Но это не слэнг и не жаргон.

> но многие общеупотребительные слова были когдато жаргонизмами, например "водка".

"Водка" -- это транслитерация английского слова 16 века???!! 8-)

> И вообще лично я против прямых переводов вроде "ногомячей", "подпутей", "воздухопространств" и т.п.

По-сербски футбол -- "ногомет", веб-обозреватель -- "читач веба". Транслитерации им и в голову не приходили. Вот это называется культура языка. В немецком, чешском и французском дела обстоят примерно так же.

Subway отражает несуществующую в большинстве языков модель словообразования, когда выкидывается корень слова и остаётся только приставка или суффикс, на которую и переносится весь смысл (subground way -- subway, omnibus -- bus). Такие структуры напрямую переводить нельзя, естественно, и не только на русский.

А термин aerospace (прилагательное!) Вы перевели неверно: правильный перевод как раз параллельно образованное слово "аэрокосмический". Это не калька, а общая схема, доставшаяся от общего языка-предка. (E)Space в английском и французском означает как "пространство, место", так и "космос" (чудесное название модели автомобиля -- Renault Espace!), в русском этой омонимики нет, для обозначения мирового пространства использовано красивое греческое заииствование.

Orlusha ★★★★
()
Ответ на: комментарий от alx_me

Буква Ё по правилам русского языка ставится в случаях: 1. Буквари и литература для изучающих русский язык; 2. Собственные названия с устоявшимся написанием: Ёко Канно 3. При акценте внимания читателя на один из смыслов (конкретный) омонима: все -> всё.

Лепить его где не попадя - это не просто дурной тон, но и абсолютно безграмотно. Не впадайте в фанатизм.

Cronos
()
Ответ на: комментарий от Cronos

> где не попадя > абсолютно безграмотно

;)

Да, и еще - "собственные названия" бывают у "вещей и явлений".

malices_gossips ★★★
()
Ответ на: комментарий от Orlusha

> высказываем

> вышибаем

Кто вы? Можно ссылку на сайт вашей организации? В профиле нету.

question4 ★★★★★
()
Ответ на: комментарий от Orlusha

>А термин aerospace (прилагательное!) Вы перевели неверно: правильный перевод как раз параллельно образованное слово "аэрокосмический".

aero
[ˈeərəu]
прил.
1) воздушный, авиационный
2) воздухоплавательный
3) предназначенный для использования на открытом воздухе

Если уж переводить, то до конца -- "воздухокосмический".

>веб-обозреватель


А как же слово "web", его переводить не обязательно? Уж следуйте своим маразматическим (ИМХО) канонам до конца, пущай будет "обозреватель сети интернет" -- коротко, доступно, удобно в использовании.

kvit
()
Ответ на: комментарий от kvit

> А как же слово "web", его переводить не обязательно?

> "обозреватель сети интернет"

Internet и web - немного разные вещи, а "сеть интернет" - тавтология. Обозреватель паутины получается ;) "Всемирная паутина" как перевод WWW в русском есть, а просто web обошли стороной почему-то...

const86 ★★★★★
()
Ответ на: комментарий от const86

> Internet и web - немного разные вещи, а "сеть интернет" - тавтология.

Прямо таки тавтология. Два компьютера, соединенные кроссовером (кстати, как это будет правильно по русски?) -- уже сеть, но не интернет.

kvit
()
Ответ на: комментарий от Orlusha

>> Нет, термин "оболочка" абсолютно адекватен поскольку интерпретатор команд скрывает детали операционной системы за своим интерфейсом. (мой вольный перевод из википедии http://en.wikipedia.org/wiki/Unix_shell )

>Сан считает иначе, а у других поставщиков юникса мнения нет, ибо нет официальных словарей терминов...

Пустые слова, Sun - компания, она считать ничего не может, если есть официальное мнение руководства компании - озвучьте со ссылкой или молчите.

>> То что термин "скрипт" - жаргонизм, согласен,

>Это не жаргонизм...

Вот термины "быдло", "лохи" и т.п. это конечно из области языкознания, их употребляют люди следящие за чистотой языка термин "жаргонизм" неприемлющие. Но лучше вам сделать лицо попроще и читать определение, если есть возражения по существу - приводите. http://www.longsoft.ru/html/9/j/jargonizm.html К сожалению ни про "быдлонизмы" ни про "лоханизмы" Ожегов ничего не знает.

>"Водка" -- это транслитерация английского слова 16 века???!! 8-)

Выдыхайте!

A-234 ★★★★★
()
Ответ на: комментарий от Cronos

> Буква Ё по правилам русского языка ставится в случаях: 1. Буквари и литература для изучающих русский язык; 2. Собственные названия с устоявшимся написанием: Ёко Канно 3. При акценте внимания читателя на один из смыслов (конкретный) омонима: все -> всё.

> Лепить его где не попадя - это не просто дурной тон, но и абсолютно безграмотно. Не впадайте в фанатизм.

Милейший! Вы путаете правила русского языка и должностную инструкцию наборщика в типогорафии, где используется металлический набор и где литер "ё" мало в соответствующем ящичке, ибо экономия и рационализация. :)

В соответствии с правилами русского языка буква "ё" пишется там, где она должна писаться. А с появлением электронного набора дремучий идиотизм, который Вы сочли за правила, канул в Лету. Ибо аргумент о необходимости держать лишний ящичек с литерами уже не актуален. :)))))

Увы, автором этого дремучего идиотизма, скрорее всего, являются люди, мнящие себя филологами. Они же до хрипоты обсуждают на конгрессах вопрос о том, как правильнее писать -- "заец" или "заиц". :(((

anonymous
()
Ответ на: комментарий от A-234

> Вот термины "быдло", "лохи" и т.п. это конечно из области языкознания, их употребляют люди следящие за чистотой языка термин "жаргонизм" неприемлющие.

Кавычки-то мастер и не заметил... Зато пафос каков!!!

Капча hooied : цензура, где ты???!!!

anonymous
()
Ответ на: комментарий от A-234

> Но лучше вам сделать лицо попроще и читать определение, если есть возражения по существу - приводите. http://www.longsoft.ru/html/9/j/jargonizm.html

Определение -- просто супер. Классика.

"Сепулька -- приспособление для сепуления. См. сепуление"

"Сепуление -- важный обряд в жизни ардритов; для его провендения используются сепульки. См. Сепульки."

(Станислав Лем. Звёздные дневники Ийона Тихого)

anonymous
()
Ответ на: комментарий от kvit

> aero

> [ˈeərəu]

> прил.

> 1) воздушный, авиационный

> 2) воздухоплавательный

> 3) предназначенный для использования на открытом воздухе

> Если уж переводить, то до конца -- "воздухокосмический".

Мультитран или лингво? Сразу чувствуется исполинская мощь отечественных коммерческих филологов.

Так вот, в русском языке корень "аэро" заимствовался не из английского, а непосредственно из греческого во времена совершенно незапамятные. Как и во всех европейских языках. Как и абсолютное большинство греческих заимстований и производных слов (риза, демон, хирург и т.п.), является неотъемлемой частью языка и не нуждается в переводе.

anonymous
()
Ответ на: комментарий от anonymous

Разве в дневниках? Мне казалось, это было в Осмотре на месте. Хотя, наверное, и там и там.

Но вы здесь неправы, никакого отношения лемовская сепулька, точнее, ее главный смысл, к определению Ожеговым жаргонизма не имеет. Достаточно пройти до определения "Жаргона", чтобы в этом убедиться:

>ЖАРГОН - м. Речь какойн. социальной или иной объединённой общими интересами группы, содержащая много слов и выражений, отличных от общего языка, в том числе искусственных, иногда условных. Ж. торговцев. Воровской ж.| прил. жаргонный, ая, ое.

malices_gossips ★★★
()
Ответ на: комментарий от Cronos

> Лепить его где не попадя - это не просто дурной тон, но и абсолютно безграмотно. Не впадайте в фанатизм.

Ещё один дебил! Давай и твёрдый знак заменим на апостроф, а? Это же будет так модно, так "по-американски".

anonymous
()
Ответ на: комментарий от Orlusha

> По-сербски футбол -- "ногомет", веб-обозреватель -- "читач веба". Транслитерации им и в голову не приходили. Вот это называется культура языка. В немецком, чешском и французском дела обстоят примерно так же.

А почему Вас, к примеру, не возмущает использование слова "файл", те же чехи используют "сОбор", или "компьютер" - "почИтач"? Давайте тоже использовать культурноязычные "сборняк" и "счетун".

По поводу иноязычных терминов: что негативного в них? То, что они молоды? Время всё расставляет на места: самолёт и аэродром, поезд и вокзал :) Талон и билет :)))))

У поляков наоборот, необычайно много "иностранщины" в языке. И ничего, тоже прекрасная культура языка.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.