Главная страница
Библиотека (скачать книги)
Скачать софт
Введение в программирование
Стандарты для C++
Уроки по C#
Уроки по Python
HTML
Веб-дизайн
Ассемблер в среде Windows
ActiveX
Javascript
Общее о Линукс
Линукс - подробно
Линукс - новое
Delphi
Паскаль для начинающих
Турбопаскаль
Новости
Партнеры
Наши предложения
Архив новостей





Удалить внутреннюю хеш-таблицу. Интерпретатор С shell перестанет использовать хешированные значения, что приведет к дополнительным затратам времени на поиск файлов по путям path. См. также rehash.
unhash

unlimit [-h] [resource]
Снять ограничение на использование указанного ресурса. Если ресурс не задан, снять ограничения для всех ресурсов. См. также limit. Параметр -hявляется предписанием снять жесткие ограничения. Эта команда может выполняться только привилегированным пользователем.
unlimit

unset variables
Удалить указанные переменные. Имена переменных могут задаваться масками с использованием специальных символов для имен файлов. Переменные, доступные только для чтения, не изменяются этой командой. См. set.
unset

unsetenv variable
Удалить переменную окружения. Расширение маски не производится. См. setenv.
unsetenv

wait
Остановить выполнение до тех пор, пока не завершатся все порожденные процессы либо не будет получен сигнал прерывания.
wait

watchlog
Только для tcsh. To же, что и log. Команда должна быть добавлена во время компиляции интерпретатора; см. значение переменной version.
watchlog

where ' where command
Только для tcsh. Отобразить все псевдонимы, встроенные команды и программы с именем command.

which command
Только для tcsh. Отображение номера версии команды, которая будет выполнена. Идентично исполняемой программе which, но работает быстрее и учитывает встроенные команды tcsh.

while (expression)
commands
end
До тех пор пока истинно выражение expression (т.е. его значение не равно нулю), выполнять команды (commands) из тела цикла (между while и end). Для выхода из цикла и перехода к следующей итерации могут использоваться операторы break и continue. См. также пример в описании команды shift.
Пример
set user = (alice bob carol ted)
while ($argv[l] != $user[1]) Перебирать пользователей
в поисках совпадения shift user Если пользователь не найден... if ($#user == 0) then echo "$argv[l] нет в списке пользователей" exit 1 endif
end

Глава 9

Шаблоны и поиск

В Linux многие инструменты, работающие с текстом, позволяют выполнять поиск, а в некоторых случаях и замену, по текстовым шаблонам, а не буквальным строкам. Среди таких инструментов - редакторы ed, ex, vi и sed; язык сценариев awk; команды grep и egrep. Текстовые шаблоны (называемые также регулярными выражениями) содержат обычные символы и символы специальные (называемые также метасимволами).
Поддержка регулярных выражений в языке Perl настолько мощна, что таблиц этой главы на нее не хватит. Подробное рассмотрение данной темы можно найти в книгах издательства O'Reilly «Perl in a Nutshell», «Perl 5 Pocket
Reference» (Perl 5: карманный справочник) или «Programming Perl» (Программирование на Perl). В редакторе Emacs также доступна работа с регулярными выражениями, схожими с описываемыми в этой главе.
Редакторы ed и ех в настоящее время практически не используются сами по себе в качестве диалоговых редакторов. Но ed применяется как пакетный обработчик, вызываемый из сценариев интерпретатора, а команды ех часто вызываются в редакторе vi посредством команды «:» (двоеточие). В данной главе при упоминании свойств vi имеются в виду регулярные выражения, доступные как в vi, так и в редакторе ех, на котором vi построен.
Инструменты sed и awk широко используются в сценариях интерпретатора и в качестве фильтров, обрабатывающих текст.
В данной главе представлены следующие
Имена и шаблоны файлов
Список метасимволов, доступных в каждой из программ
Описание метасимволов

Примеры

Подробное руководство по шаблонам и поиску можно найти в книге Джеффри Фридла (Jeffrey E.F. Friedl) «Mastering Regular Expressions*, вышедшей в серии Nutshell Handbook.

Имена файлов в сравнении с шаблонами
Метасимволы, применяемые при поиске по шаблону, отличаются от специальных символов расширения имен файлов. Специальные символы команды, вводимой в командной строке, сначала обрабатываются интерпретатором и лишь затем программой; как следствие неэкранированные метасимволы используются интерпретатором для расширения имен файлов. К примеру, команда
$ grep [A-Z]* chap[12]
может быть понята интерпретатором как:
$ дгер Array.с Вид.с Сотр.с chapl chap2
и grep будет производить поиск строки «Array.с» в файлах Bug.c, Comp.c, chapl и chap2. Чтобы обойти расширение спецсимволов интерпретатором, необходимо экранировать их кавычками:
$ grep "[A-Z]*" chap[12]
В большинстве случаев достаточно двойных кавычек, но самым безопасным вариантом являются кавычки одинарные.
Отметьте также, что символы * и ? имеют немного разный смысл для поиска по шаблону и расширения имен файлов.

Метасимволы в программах Linux



   
 

Библиотека программиста. 2009.
Администратор: admin@programmer-lib.ru