Э. Сивер, С. Спейнауэр, С. Фиггинс, Дж. П. Хекман - Linux cправочник - 3-е издание (1114666), страница 21
Текст из файла (страница 21)
в описанииgrep. См. также fgrep. egrep, как правило, работает быстрееэтих двух программ.133egrepПримерыИскать имена Victor и Victoria в файле:egrep 'Victor(ia)*' f i l eegrep '(Victor[Victoria)' f i l eНайти в файлах и отобразить такие строки, как old.docl илиnew.doc2, включая номера строк:egrep -n '(old|new)\.doc?' filesemacs [options] [files]emacsТекстовый редактор и многоцелевая рабочая среда.
Болееподробно Emacs описан в главе 10 «Редактор Emacs».env [options] [variable=value ...] [command]envОтобразить параметры текущего окружения либо, если задана переменная окружения (variable), присвоить ей новоезначение (value) и отобразить измененные параметры окружения. Если задана команда (command), выполнить ее в измененном окружении.Параметры-, —i, —ignore-environmentПолностью игнорировать существующее окружение.-u name, —unset nameСбросить заданную переменную окружения.—helpВывести справку по использованию и завершить работу.—versionОтобразить информацию о версии программы и завершить работу.etags [options] filesСоздать список имен функций и макросов, определенных вуказанном исходном тексте программы на языке С, Pascal,FORTRAN, yacc или flex. Результат работы (по умолчаниюфайл tags) содержит строки следующего вида:etagsГлава 3.
Команды Linux134etagsnamefilecontextгде пате — имя функции или макроса, file — файл с исходным текстом, в котором определено это имя, a context - шаблон поиска, которому соответствует строка кода, содержащая имя пате. После создания списка имен (тегов) можновызвать Emacs для любого файла и ввести:ESC-x visit-tags-tableEmacs предложит задать имя файла; по умолчанию — TAGS.Чтобы переключиться на редактирование исходного файла,связанного с именем пате в файле tagsfile, введите:ESC-x find-tagа затем имя тега, которое необходимо найти, ctags создаетэквивалентный файл для работы с редактором vi.Параметры—а, —appendДобавлять теги в уже существующий список.—d, —definesВключать строку для каждой из определяющих директивпрепроцессора.—i file, —include=/i/eДобавить к файлу тегов примечание о том, что в дополнение к исходному файлу необходимо прочитать файл file.—1 language, —language=languageФайлы, перечисленные после этого параметра, содержатисходные тексты на языке language.
При помощи параметра —h можно получить перечень узнаваемых языков истандартных расширений файлов с текстами на этих языках.—о file, —output=fileЗапись результата в файл file.—г regexp, —regex=regexpВключать тег для каждой из строк, содержащей соответствие регулярному выражению regexp, из всех файлов,следующих после параметра.-С, —с++Считать, что файлы .с и .Л содержат текст на языке C++, ане С.Алфавитный перечень команд—D, —no-definesНе включать строки для определяющих директив препроцессора.135etags—Н, —h, —helpВывести справку по использованию etags.—R, —noregexНе включать теги для строк, соответствующих регулярным выражениям, из всех файлов, следующих за этимпараметром.-S, —ignore-indentationОбычно etags использует отступы в тексте для разборафайлов тегов; данный параметр делает работу независящей от отступов.-V, —versionВывести информацию о номере версии etags.ex [options] f i l eехДиалоговый командный редактор.
Более подробно описан вглаве 11 «Редактору!».expand [options] filesПреобразование символов табуляции в перечисленных файлах или, если именем файла является «—», то в потоке данных, поступающих со стандартного ввода. Символы табуляции заменяются соответствующим количеством пробелов.Результат выдается на стандартный вывод.Параметры-tabs, —t, —tabs tabstabs - это список целых чисел, разделенных запятыми,которые определяют размеры табуляций в зависимостиот их порядковых номеров в строках. Если список состоит из одного числа, каждый символ табуляции заменяется таким же количеством пробелов. По умолчанию размер табуляции составляет 8 пробелов. При использовании —t и —tabs значения в списке могут быть разделеныпробелами, а не запятыми.expandГлава 3. Команды Linux136expand—i, —initialПодвергать преобразованию только символы табуляции,расположенные в начале строк.—helpВывести справку по использованию и завершить работу.—versionОтобразить информацию о версии программы и завершить работу.ехргexpr argl operator arg2 [operator arg3...]Вычисление выражения, заданного аргументами, и выводрезультата.
Аргументы и операторы должны разделятьсяпробелами. В большинстве случаев аргументами являютсяцелые числа, представленные цифрами или переменнымикомандного интерпретатора. Существует три вида операторов: арифметические, операторы отношения и логические.В выражениях могут использоваться ключевые слова. Кодывозврата ехрг: 0 - выражение не равно нулю или результатне пустой, 1 - выражение равно нулю или результат пустой,2 - выражение недопустимо.Арифметические операторыПрименяются для вычисления математических выраженийс выводом результата:+ Сложить аргументы arg2 и argl.— Вычесть arg2 из argl.*Перемножить аргументы./ Поделить argl на arg2.% Взять остаток от деления argl на arg2.Операции сложения и вычитания выполняются в последнюю очередь, если они не сгруппированы внутри скобок.Символ «*» и круглые скобки имеют специальное значениедля интерпретатора, поэтому их необходимо экранировать(символом «\» или одинарными кавычками).Операторы отношенийИспользуются для сравнения двух аргументов.
Аргументымогут быть словами, тогда сравнение определяется текущими параметрами локализации (locale). Если сравнение истинно, ехрг возвращает 1, в противном случае - 0. Символы«>» и «<» должны быть экранированы символом «\».137Алфавитный перечень командехргПроверка на равенство аргументов.!=Проверка на неравенство аргументов.>Проверить, что argl больше arg2.>= Проверить, что argl больше или равен аг§2.<Проверить, что argl меньше, чем arg2.<= Проверить, что argl меньше или равен arg2.Логические операторыПредназначены для сравнения двух аргументов.мости от значений аргументов результат можетargl (или его части), arg2 или нулю. Символыдолжны быть экранированы при помощи символаВ зависиравняться«|» и «&»«\».|Логическое ИЛИ; если аргумент argl имеет ненулевое(и непустое) значение, результат равен argl.
В противном случае результат равен arg2.&Логическое И; если оба аргумента имеют ненулевое (инепустое) значение, результат равен argl; в противномслучае результат равен 0.:Аналог grep. Аргумент arg2 является шаблоном для поиска в argl. arg2 должен быть регулярным выражением. Если шаблон arg2 заключен в пары символов \( \), торезультатом является часть аргумента argl, соответствующая шаблону, в противном случае результатом является количество символов, совпадающих с шаблоном.По умолчанию происходит выравнивание шаблона поначалу аргумента argl (регулярное выражение неявноначинается с символа «"»); но можно производить поиски в произвольном месте строки, тогда шаблон долженначинаться с символов «.*».Ключевые словаindex string character-listВозвращает номер первой позиции строки string, символкоторой совпадает с любым символом из списка возможных (character-list), причем предпочтение отдается символу, встретившемуся в списке раньше прочих.
Если ниодин символ в строке не найден, возвращается 0.length stringВернуть длину строки string.138exprГлава 3. Команды Linuxmatch string regexИдентично string: regex.quote tokenСчитать token строкой, даже если его можно интерпретировать как ключевое слово или оператор.substr string start lengthВернуть часть строки (string), начиная с символа start,length определяет максимальное количество возвращаемых символов. При задании отрицательных или нечисловых параметров start и length возвращается пустой результат.ПримерыПриоритет операции деления выше; результат вычисленияравен 10:ехрг 5 + 1 0 / 2Сначала происходит сложение; результат равен 7 (усечение7,5):ехрг \( 5 + 10 \) / 2Прибавить 1 к переменной i. В сценариях командных интерпретаторов именно так увеличиваются значения переменных:i = 'ехрг $1 + 1'Вывести 1 (истина), если значение переменной а равняетсястроке «hello»:ехрг $а = helloВывести 1 (истина), если сумма b и 5 больше или равна 10:ехрг $ь + 5 \>= 10Найти 5-ю, 6-ю и 7-ю буквы слова character:ехрг substr character 5 3В следующих примерах переменная р является строкой иимеет значение «version.100».