Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: sed - вопросы  (Прочитано 967 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн ais77

  • Автор темы
  • Участник
  • *
  • Сообщений: 186
  • linux blondy
    • Просмотр профиля
sed - вопросы
« : 28 Октября 2008, 13:39:48 »
Ткните носом - чувствую, что ошибка в чем-то сверх-примитивном, обгуглился уже - никаких идей не осталось...
sed ведет себя как-то странно (нужно заменить один IP-шник на другой в файле myip).
Пишу команды:

ais77@sev77u:~$ cat myip
pasv_address=1.2.3.4
ais77@sev77u:~$ sed s/1.2.3.4/5.4.3.2/g myip
pasv_address=5.4.3.2
т.е., вроде бы, замена состоялась - 1.2.3.4 заменился на 5.4.3.2...

а вот и нет - файл остался неизменным:
ais77@sev77u:~$ cat myip
pasv_address=1.2.3.4

Права на запись в файл стоят правильные, вроде:
ais77@sev77u:~$ ls -l myip
-rw-r--r-- 1 ais77 ais77 21 2008-10-28 07:43 myip

где собака порылась?
Help, please! :-\

Оффлайн cOnf_ua

  • Новичок
  • *
  • Сообщений: 47
    • Просмотр профиля
Re: sed - вопросы
« Ответ #1 : 28 Октября 2008, 13:52:36 »
ознакомтесь со спецификой Input/Output в unix системах.
в данном случае попробуйте так:
sed s/1.2.3.4/5.4.3.2/g myip > myip2
mv myip2 myip
(первое что пришло в голову)

Оффлайн ais77

  • Автор темы
  • Участник
  • *
  • Сообщений: 186
  • linux blondy
    • Просмотр профиля
Re: sed - вопросы
« Ответ #2 : 28 Октября 2008, 14:10:36 »
ознакомтесь со спецификой Input/Output в unix системах.
...
(первое что пришло в голову)
Это понятно, что первое. Мне тоже, пока о sed манов не читал ;D
Но sed же должен вносить изменения непосредственно в файл?
Я нигде не втречал в скриптах-примерах по sed этого окольного - через временный файл - пути.
например
http://ant0.ru/sed_edit_interfaces.html

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: sed - вопросы
« Ответ #3 : 28 Октября 2008, 15:07:11 »
ознакомтесь со спецификой Input/Output в unix системах.
в данном случае попробуйте так:
sed s/1.2.3.4/5.4.3.2/g myip > myip2
mv myip2 myip
(первое что пришло в голову)
Не забывайте, что символ "." в регэкспе, не будучи экранированным "\",  обрабатывается как любой символ.

...пока о sed манов не читал ;D
Но sed же должен вносить изменения непосредственно в файл?
Цитата: man sed
sed - stream editor for filtering and transforming text
« Последнее редактирование: 28 Октября 2008, 15:15:56 от ArcFi »

Оффлайн cOnf_ua

  • Новичок
  • *
  • Сообщений: 47
    • Просмотр профиля
Re: sed - вопросы
« Ответ #4 : 28 Октября 2008, 15:18:33 »

Это понятно, что первое. Мне тоже, пока о sed манов не читал ;D
Но sed же должен вносить изменения непосредственно в файл?

http://ant0.ru/sed_edit_interfaces.html

я как и вы подробно с этим редактором не ознакамливался, но вот цитата из мана "sed - stream editor for filtering and transforming text", что означает что это не редактор файла, а редактор текстовых потоков, то есть измененный текст он выдает на выходе. хотя не исключено что он может и исходный файл редактировать, но для этого надо юзать спец ключики или еще что-то...
« Последнее редактирование: 28 Октября 2008, 15:29:07 от cOnf_ua »

Оффлайн ais77

  • Автор темы
  • Участник
  • *
  • Сообщений: 186
  • linux blondy
    • Просмотр профиля
Re: sed - вопросы
« Ответ #5 : 28 Октября 2008, 15:41:06 »
Не забывайте, что символ "." в регэкспе, не будучи экранированным "\",  обрабатывается как любой символ.
Вот это уже интереснее - не знал.
Но все равно никак не объясняет странного поведения sed - он таки не изменяет файл  :-\

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: sed - вопросы
« Ответ #6 : 28 Октября 2008, 16:39:18 »
Но все равно никак не объясняет странного поведения sed - он таки не изменяет файл  :-\
Проверьте права доступа, текущую директорию и путь к файлу.

Если нужно именно изменение файла, читайте здесь: http://www.iser.uaa.alaska.edu/iser/people/juggler/Trix/All-sed-and-done.htm
Да и вообще, в первую очередь стоит поскать тут: http://www.google.ru/search?q=sed+examples
« Последнее редактирование: 28 Октября 2008, 16:42:30 от ArcFi »

Оффлайн ais77

  • Автор темы
  • Участник
  • *
  • Сообщений: 186
  • linux blondy
    • Просмотр профиля
Re: sed - вопросы
« Ответ #7 : 30 Октября 2008, 13:22:58 »
Проверьте права доступа, текущую директорию и путь к файлу.
Права доступа привел в листинге - они корретные.
За первую ссылочку - спасибо))
Выложу результат в ближ. время - скриптик должен быть многим полезен.

 

Страница сгенерирована за 0.033 секунд. Запросов: 23.