andy ice писал(а): man sedс английским не очень.. можно пример использования этой функции опяраясь на вышенаписанную задачу? |
НАЗВАНИЕ
sed - потоковый редактор (Stream EDitor) СИНТАКСИС sed [-n] [-V] [--quiet] [--silent] [--version] [--help] [-e script] [--expression=script] [-f script-file] [--file=script-file] [script-if-no-other-script] [file...] ОПИСАНИЕ Sed это редактор потока. Потоковый редактор используется для выполнения основных преобразований с текстом на входном потоке (файл или ввод из конвейера). Тогда как некоторые схожие редакторы (такие как ed) допускают комплексное редактирование, sed работает совершая лишь одно действие над вводом за проход и следовательно более эффективен. Благодаря этому sed в состоянии фильтровать текст в конвейере, что особо выгодно отличает его от редакторов других типов. ОПЦИИ Sed может быть вызван со следующими параметрами командной строки: -V --version Сообщает версию запущенного sed, версию лицензионного соглашения, под которым он распространяется и завершает работу. -h --help Выводит подсказку о способе использования, вкратце сообщает о параметрах командной строки, с которыми он может быть запущен, адрес, куда можно сообщить об обнаруженных в работе программы ошибках, и затем завершает работу. -n --quiet --silent По умолчанию, sed после прохождения каждого цикла сценария распечатывает обрабатываемую область шаблона. Эти опции отключают автоматический вывод, который может быть включен лишь явным указанием ключа p для sed. -e сценарий --expression=сценарий Добавляет команды в сценарий к набору выполняемых команд при обработке ввода. -f сценарий --file=сценарий Добавляет команды содержащиеся в сценарии к набору выполняемых команд при обработке ввода. Если в командной строке не указан параметр -e, -f, --expressiln или --file, то первый же заданный в командной строке аргумент не-опция будет считаться сценарием для выполнения. Если какие-либо параметры командной строки остаются после вышеупомянутой обработки, то они интерпретируются как имена входных файлов подлежащих обработке. Имя файла - соотносится со стандартным входным потоком. Стандартный ввод обрабатывается в том случае, если никаких имён файлов не определено. СИНТАКСИС КОМАНД Это лишь краткое резюме команд sed, призванное служить подсказкой для тех, кто уже знаком с sed; для более полного пояснения необходимо ознакомиться с другой документацией (наподобие документации texinfo). Безадресные команды : метка Метка для b и t команд. #комментарий Комментарий простирается до следующего вхождения новой строки (или до конца фрагмента сценария -e) } Закрывающая скобка блока { }. Команды без адреса или с одним адресом = Распечатать номер текущей строки. a \ текст Добавить текст, где каждое вхождение новой строки начинается со знака обратного слэша. i \ Вставить текст, где каждое вхождение новой строки начинается со знака обратного слэша. q Немедленное выход из сценария sed без дальнейшей обработки любого ввода, за исключением автовывода, если он не отключен. В этом случае будет распечатан текущий набор шаблонов. r файл Добавить текст прочитанный из файла. Команды, которые принимают интервалы адресов { Начало блока команд (оканчивается знаком }). b метка Переход к метке; если метка опущена, переход) к концу сценария. t метка Если s/// сделал успешную замену, так как была прочитана последняя строка ввода и последняя команда t, то выполнить переход к метке; если метка опущена, то перейти к концу сценария. c \ текст Заместить выбранные строки текстом, где каждое вхождение новой строки начинается со знака обратного слэша. d Удалить заданную область шаблона. Начать следующий цикл. D Удалить до первого вхождения новой строки в области шаблона. Начать следующий цикл, но пропустить считывание ввода, если там всё ещё данные из области шаблона. h H Скопировать/добавить область шаблон к удерживаемой области. g G Скопировать удерживаемую область к области шаблона. x Поменять местами удерживаемую область и область шаблона. l Огласить текущую строку в "визуально однозначной" форме. n N Прочитать/добавить следующую строку ввода в область шаблона. p Распечатать текущую область шаблона. P Распечатать до первого вхождения новой строки текущей области шаблона. s/регулярное_выражение/замена/ Попытаться разыскать регулярное_выражение (regexp) в области шаблона. Если это удалось, то заместить эту часть с заменой. Замена может содержать специальный символ & для обращения к той части области шаблона, которая является соответствием, и специальные управляющие последовательности, от \1 до \9, для обращения к соответствующим разыскиваемым под-выражениям в регулярном_выражении. w файл Записать текущую область шаблона в файл. y/источник/цель/ Транслитерация символов в области шаблона, которые присутствуют в источнике с соответствующими символами в цели. АДРЕСАЦИЯ Команды sed могут быть заданы без указания адреса, в этом случае команда выполняется для всех строк ввода; с одним адресом, в этом случае команда будет выполнена применительно строкам ввода совпадающим с адресом; или с двумя адресами, в этом случае команда будет выполнена для всех строк ввода, соответствующих заданному диапазону строк начиная с первого и заканчивая последним адресами. Три правила, касающиеся этих диапазонов адресов: используемый синтаксис адрес1,адрес2 (т.е. адреса разделены через запятую); строка, соответствующая адрес1, обрабатывается даже в том случае, если адрес2 указывает на предшествующую ей строку; и если адрес2 является регулярным выражением (regexp), то оно не будет использовано относительно строки, соответствующей адрес1. После адресов (или диапазона адресов) и перед командой может быть вставлен !, означающий, что команда должна быть выполнена только в том случае, если адрес (или диапазон адресов) не соответствует. Поддерживаются следующие типы адресов: номер Соответствует только заданному номеру линии. первая~шаг Соответствует каждой строке шаг начиная от строки первая. Например, "sed -n 1~2p" напечатает все нечётные строки во входном потоке и адреса 2~5 будут соответствовать каждой пятой строке начиная со второй. (Это расширение GNU.) $ Соответствует последней строке. /regexp/ Соответствует строкам подпадающим под определение регулярного выражения regexp. \cregexpc Соотвествует строкам подпадающим под определение регулярного выражения regexp. c может быть любым символом. РЕГУЛЯРНЫЕ ВЫРАЖЕНИЯ POSIX.2 BRE должны поддерживаться, но всё же не полностью. \n последовательность в регулярном выражении соответствует символу новой строки. Есть также некоторые GNU расширения. [XXX FIXME: необходимо многое сказать. По крайней мере необходимо дать ссылки на другие документы, которые описывают то, что поддерживается.] ПРОЧИЕ ПРИМЕЧАНИЯ Данная версия sed поддерживает последовательность \<новая_строка> во всех регулярных выражениях, в замещающих частях команд подмены (s) и в частях источник и цель команд транслитерации (y). \ будет удалено, а новая строка сохранена. СМ. ТАКЖЕ awk(1), ed(1), expr(1), emacs(1), perl(1), tr(1), vi(1), regex(5), [то, что должно быть написано ... XXX], sed.info, любая из множества книг по sed, sed FAQ (http://www.dbnet.ece.ntua.gr/~george/sed/sed-faq.html, http://www.ptug.org/sed/sedfaq.htm). ОШИБКИ Сообщения об ошибках направляйте на bug-gnu-utils@gnu.org. Не забудьте указать где-нибудь в поле "Тема" письма слово "sed". ОБ АВТОРЕ Copyright (C) 1998 Free Software Foundation, Inc. Перевод с английского выполнил Александр Блохин <sass@altlinux.ru> |
в состав какого пакета входит команда ifconfig и как узнать зависимые пакеты .... |
Мишаня_![]() man rpm
|
у меня такая проблема, некоторые команды не запускаются, точнее , установлен ifconfig , в консоли набираю ifconfig ругается что типо не нашел такой команды, а она валяется в sbin...как с этим бороться |
Мишаня_![]() ![]() _________________ Йа - водоросль. |
Dio писал(а): Мишаня_![]() ![]() ну дык я и запускаю под рутом, а во вторых если бы я запускал не под рутом то ругалось бы не на то что bash: ifconfig: command not found а на то что я не под рутом.... |
а в моем случае даже заходя не под рутом в каталог sbin и рубя ./ifconfig он запускается....
-rwxr-xr-x 1 root root 54620 Мар 12 2004 ifconfig как так получилось хз....че то я натворил такого хе хе хе...мне просто жуть интересно как с этим бороться.... |
наверное че нить bash на меня обиделся...надо счас че нить в конфиге поковыряться... |
Под рутом, как я понимаю, заходим через su? Похоже через просто su, а не su - . Получается, что все переменные окружения остаются юзеровские, а не рутовые. Лечение - запускать su -
Если ошибка не в этом, то возможно ковырялись в путях (переменной PATH) и вырезали оттуда /sbin. Проверка: set | grep ^PATH= Если в путях нет /sbin, добавить его туда Кстати, ifconfig запускается и от юзера (в информационном режиме). Это не ошибка, юзер должен знать свою сетевуху ![]() |
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы можете скачивать файлы |