программирование

Почему Скриптовый язык программирования лучше Компилируемого?

Давай те сразу начнём разбирать особенности сриптовых языков!
Скриптовый язык считается очень гибким и к тому же он всегда идёт с открытым кодом, т.е. найти
чужой код и подстроить его под себя не составляет больших проблем. К тому же скрипты пишутся намного быстрее чем на компилируемом языке, отсюда можно сделать вывод что для новичков они подходят идеально не нужно будет путаться в огромном пространстве компилируемых языков и их технологий.

Пример 19A: Программирование в Linux? (Только опционально, для развлечения)

Прежде всего, я должен сказать, что не силен в программировании, у меня не хватает терпения и логики, я просто набирал код в свои ранние компьютерные годы для игр на Atari. Однако, кого-то может заинтересовать, как пишутся программы и что для этого нужно.

Большинство из того, что вам может понадобиться, включено в вашу систему Fedora Core, и имеется много опций. Язык, который является самым популярным и наиболее доступным для новичков, называется Python. Как вы помните, оракул pyWings, который вы устанавливали в Главе 9, был написан на этом языке.

Для того, чтобы ...

Примеры использования

awk может использоваться непредсказуемым способом: системы баз данных, различные компиляторы и трасляторы, в дополнение к традиционным задачам поиска информации, обработки данных и генерации отчетов. Программы awk значительно короче, чем аналогичные программы, написанные на традиционных языках программирования, таких как Pascal и Си. В этом подразделе приведены примеры, иллюстрирующие некоторые дополнительные возможности программ awk.

Функция getline

Способность awk автоматически разбивать вводной файл на записи длиной более чем одна строка, не отвечает требованиям некоторых задач. Например, если записи разделены не пустыми строками, а чем-нибудь другим, то установка RS в ноль не работает. В таком случае программа должна управлять разбиением каждой записи на поля. Здесь дано несколько советов.

Функция getline может быть использована для чтения ввода либо из текущего вводного файла, либо из файла или канала, перенаправленного аналогично printf.

getline вызывает следующую вводную запись и ...

Многострочные записи

Обычно записи разделяются символами новой строки, так что каждая строка яавяется записью. Такой порядок можно изменить. Если пременная RS - разделитель встроенных записей - установлен в значение "пустая строка", как в:

	BEGIN { RS = "" }

то записи вводного файла могут занимать несколько строк. Последовательность пустых строк разделяет записи. Для обработки многострочных записей в общем случае может использоваться:

	BEGIN { RS = ""; FS = "\n" }

установка в качестве разделителя записи ...

Ввод

Наиболее общим способом подачи ввода программе awk является указание в командной строке имен вводных файлов. Но существуют и другие способы. Они описываются в этом подразделе.

10.21.1. Файлы и каналы

Вы можете поместить вводимые данные в файл, указать
awkdata и затем выполнить:

	awk 'программа' awkdata 

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

Вывод

Операторы print и printf являются простейшими конструкциями, которые генерируют вывод. Оператор print используется для образования просто вывода; printf - для форматируемого вывода. Подобно shell awk позволяет вам перенаправлять вывод в файл или в канал.

10.20.1. Оператор print

Оператор:

	print expr1, rxpr2, ..., exprn 

печатает строки каждого выражения, разделенные при помощи разделителей полей и следующими за ними разделителями записей.

Оператор:

	print 

является сокращенной формой ...

Комментарии

В программе awk могут присутствовать комментарии. Они начинаются с символа # и заканчиваются символом новой строки:

	print x,y # это комментарий 

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

Функции, определенные пользователем

awk поддерживает функции, определенные пользователем:

         function имя( список_аргументов) {
                      операторы
         }

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

Массив элементов просматривается ...

Массивы

awk поддерживает одномерные массивы. Массивы и элементы массивов нет необходимости объявлять. Индексы массива могут быть числом или строкой. Пример условного обозначения числового индекса:

	x[NR] = $0

присваивает текущую строку вводного файла элементу NR
массива x.

Фактически возможно считать целый вводной файл в массив
с помощью программы awk:

              { x[NR] = $0 }
        END   { ... обработка ...}

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

Ленты новостей