Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

Знатоки awk и sed, помогите, если не трудно

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Unix
Предыдущая тема :: Следующая тема  
Автор Сообщение
alex 946
Гость





СообщениеДобавлено: Пт Дек 21 2001 22:58    Заголовок сообщения: Знатоки awk и sed, помогите, если не трудно Ответить с цитатой

Надобно:
Во все файлы из одной папки вставить содержимое файла ***, и заменить везде ВАСЯ на ПЕТЯ.
Изменённые файлы положить в другую папку.

Используя sed, я смог легко разделатся с заменой. А вот вставка из файла идёт только на output а не в выходной файл. И вывести смог только в ОДИН файл. Длинный такой получился Smile. Сделать вывод в файлы с такими же именами, как и входные не смог.

Используя awk, наоборот, легко сделал вывод "много на входе - много на выходе" (переменная FILENAME помогла), а вот с контекстной заменой застрял.

Пользовался литературой:
sed и awk (учебное пособие) (с) А.Соловьев
Язык обработки данных AWK, Галина О. В.
Неинтерактивный текстовый редактор SED, Галина О. В.

Варианты:
1. Не то читал (или не всё)
2. Читал то но не понял. (тупой то есть)
3. Использовал не тот редактор.
4. Где-то есть грабли, о которых мне не известно.

Как победить?

Заранее спасибо. Даже если выяснится, что имеет место вариант 2.
Вернуться к началу
Dmitry.Karpov http://www.
Гость





СообщениеДобавлено: Сб Дек 22 2001 14:40    Заголовок сообщения: А может, попробоваь перейти на Perl? Ответить с цитатой

На Perl такие вещи, как работа с кучей файлов и замена подстрок, делаются существенно проще - Perl как раз был написан человеком, которому не хватало возможностей AWK.

На Sed я бы организовал цикл средствами Shell (оператор foreach) по списку файлов и для каждого файла запускал бы свой Sed.

На AWK я бы попробовал функцию split(строка, массив, разделитель), где в качестве разделителя используется "ВАСЯ", а потом массив склеивается в цикле или сразу печатается с разделителем OFS="ПЕТЯ".
Вернуться к началу
alex 946
Гость





СообщениеДобавлено: Сб Дек 22 2001 16:54    Заголовок сообщения: Спасибо. Пошёл думать. Ответить с цитатой

вот.
Вернуться к началу
ilyasov
Гость





СообщениеДобавлено: Вс Дек 23 2001 15:55    Заголовок сообщения: Re: А может, попробоваь перейти на Perl? Ответить с цитатой

Да не надо Perl! Именно и стоит использовать sh+sed (2-й совет Димы самый правильный). Получится дешево и сердито.
Не люблю когда из пушки по воробьям...
Вернуться к началу
Dmitry.Karpov http://www.
Гость





СообщениеДобавлено: Вс Дек 23 2001 18:05    Заголовок сообщения: Это не из пушки по воробьям, это с расчетом на будущее Ответить с цитатой

Если alex собирается и дальше двигаться в таком направлении, то очень скоро он, как и автор Perl, натолкнется на ограниченность Grep/Sed/AWK, только автору Perl пришлось написать этот самый Perl, а alex может воспользоваться готовым языком.

Учите Perl, alex, он золотой... Smile
Вернуться к началу
alex 946
Гость





СообщениеДобавлено: Вт Дек 25 2001 07:24    Заголовок сообщения: Вы оба правы... :) Ответить с цитатой

Начнём с того, что Perl ..обычно.. серверная приблуда.
Для локальной задачи, причём узкоспециализированной, можно и sed'ом обойтись. Тем более, что у меня не UNIX a BeOS, то-есть Perl ещё прикрутить надо. А так... вы все правы, в общем. Кстати, это единственный форум, где ответили по-существу вопроса.
Вернуться к началу
ilyasov
Гость





СообщениеДобавлено: Вт Дек 25 2001 13:31    Заголовок сообщения: Ясно, что оба, поэтому и дополняем друг друга по необходимости (a'la Dmitry: empty) :) Ответить с цитатой

empty
Вернуться к началу
Dmitry.Karpov http://www.
Гость





СообщениеДобавлено: Чт Дек 27 2001 21:27    Заголовок сообщения: Perl был придуман задолго до серверов... Ответить с цитатой

Если внимательно покопать Perl, то будет видно, что его CGI-свойства реализуются через подключаемый модуль, а не встроены. Изначально Perl был предназначен для генерации отчетов по log-файлам или по другим файлам сообщений.
Вернуться к началу
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Unix Часовой пояс: GMT + 3
Страница 1 из 1

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


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...