BSDPORTAL.RU

На этом сайте обсуждаются вопросы использования ОС FreeBSD
 Портал  •  Статьи  •  Форум  •  Wiki  •  Поиск  •  FAQ  •  Обои  •   Официальная документация  •  Новые темы 

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 11 ] 
Автор Сообщение
 Заголовок сообщения: Скрипт конфигурирования
СообщениеДобавлено: Ср 29 апр, 2015 2:24 am 
Не в сети

Зарегистрирован: Чт 28 ноя, 2013 12:36 pm
Сообщения: 37
Периодически возникает необходимость автоматизировать установку и настройку чего либо. Приходится писать скрипты. Но вот не задача, не как не соображу как на Csh комментарий "#" уберать скриптом.
Например есть такая строка:
#UseDNS no
Надо из скрипта найти эту строку и удалить решетку.

Пока что у меня вариант только с сохранением в другой файл и переименование в исходный.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Скрипт конфигурирования
СообщениеДобавлено: Ср 29 апр, 2015 9:19 am 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: Вт 10 авг, 2004 2:24 am
Сообщения: 3246
Откуда: Харьков
это не вопрос csh, а вопрос утилит
Код:
gsed -i '/UseDNS/ s/^#*//' файл_в_котором_менять.txt

решение по сути тоже, что и тут viewtopic.php?f=58&t=27338#p168398
изучай утилиты grep sed awk и т.п.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Скрипт конфигурирования
СообщениеДобавлено: Ср 29 апр, 2015 1:58 pm 
Не в сети

Зарегистрирован: Чт 28 ноя, 2013 12:36 pm
Сообщения: 37
sed наверное? описка

изучаю...
конструкцию s/// знаю, а вот конструкцию // не знаю. ну и их взаимодествие

http://www.lissyara.su/doc/man/sed/
пункт 2. но там как то тяжко для восприятия

отправьте ссылочку где почитать.
регулятку тоже постоянно смотрю... тяжко с логикой конечно...

ну и появляется вопрос а как поставить # ?

sed -i '/UseDNS/ s/^.*/#$&/' файл_в_котором_менять.txt

что после решетки ставить?
в этом примере ставится "#$" а почему?
http://www.exlab.net/files/tools/sheets ... regexp.pdf
шпаргалка
внизу написано $& - найденная строка целиком

хорошо убрал $

sed -i '/UseDNS/ s/^.*/#&/' файл_в_котором_менять.txt

все нормуль. а почему??? объясните плиз..
в таблице нету & одиноко стоящего...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Скрипт конфигурирования
СообщениеДобавлено: Ср 29 апр, 2015 2:10 pm 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: Вт 10 авг, 2004 2:24 am
Сообщения: 3246
Откуда: Харьков
exec писал(а):
sed наверное? описка
не описка

1. для замены в файле используй gsed -i а не sed
2. для тестов используй sed без параметра -i будет не в файле менять, а на экран просто выводить ничего не изменяя в файле.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Скрипт конфигурирования
СообщениеДобавлено: Ср 29 апр, 2015 2:58 pm 
Не в сети

Зарегистрирован: Чт 28 ноя, 2013 12:36 pm
Сообщения: 37
Linux
$ man gsed
No manual entry for gsed
$ gsed
bash: gsed: команда не найдена

Freebsd
# man gsed
No manual entry for gsed
# gsed
gsed: Command not found.
#


а так, как не странно но у меня вот эта строка в пингвинах работает ;)
sed -i '/UseDNS/ s/^.*/#&/' файл_в_котором_менять.txt

вот тока не совсем мне понятно :) вопрос был выше.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Скрипт конфигурирования
СообщениеДобавлено: Ср 29 апр, 2015 3:07 pm 
Не в сети

Зарегистрирован: Вс 05 июн, 2005 4:19 pm
Сообщения: 3072
Откуда: Ukraine
Код:
pkg install textproc/gsed

_________________
Ми можемо все - що здатні собі уявити!
uname -a
Linux nonamehost 4.10.2-zen-fidaj-muqss-ck+ #4 ZEN SMP PREEMPT Sun Mar 12 19:48:08 EET 2017 x86_64 x86_64 x86_64 GNU/Linux


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Скрипт конфигурирования
СообщениеДобавлено: Ср 29 апр, 2015 3:18 pm 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: Вт 10 авг, 2004 2:24 am
Сообщения: 3246
Откуда: Харьков
exec писал(а):
но у меня вот эта строка в пингвинах работает ;)
sed -i '/UseDNS/ s/^.*/#&/' файл_в_котором_менять.txt
вот тока не совсем мне понятно :) вопрос был выше.

в linux GNU sed - в freebsd это gsed

sed который идёт в базовой системе freebsd во многом совпадает, но есть небольшие отличия и в данном конкретном случае это отличие проявляется.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Скрипт конфигурирования
СообщениеДобавлено: Ср 29 апр, 2015 4:12 pm 
Не в сети

Зарегистрирован: Чт 28 ноя, 2013 12:36 pm
Сообщения: 37
мда...
фря
# sed -i '/tips/ s/^#*//' 333
sed: 1: "333": command expected

сравнил маны на ключик -i и в линухах и во фре одинаковые. а работают по ходу поразному... мда.

установка gsend не подходит... так же как и перл. по крайной мере пока.
выход есть скопировать текущий в новый файл (что бы права и владельца сохранить), потом в новый сендить, и копируем все назад ..


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Скрипт конфигурирования
СообщениеДобавлено: Ср 29 апр, 2015 5:09 pm 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: Вт 10 авг, 2004 2:24 am
Сообщения: 3246
Откуда: Харьков
"костыльно" можно сделать как sed -i.bac
тогда sed сделает всё как надо, но в дополнение создаёт копию файла старого, расширение копии уазывается после -i в данном случае .bac ... как делать без копии хз, может кто вкурсе


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Скрипт конфигурирования
СообщениеДобавлено: Пт 01 май, 2015 9:40 am 
Не в сети
Аватара пользователя

Зарегистрирован: Пт 09 апр, 2010 9:49 pm
Сообщения: 565
Откуда: большой деревни
grayich писал(а):
"костыльно" можно сделать как sed -i.bac
тогда sed сделает всё как надо, но в дополнение создаёт копию файла старого, расширение копии уазывается после -i в данном случае .bac ... как делать без копии хз, может кто вкурсе

Перенаправить вывод в тот же файл ('>' или '>&', смотря какой шелл).

_________________
никто кроме нас (С)
пять строчек лога могут дать больше информации, чем тысяча строк описания, что и как не работает.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Скрипт конфигурирования
СообщениеДобавлено: Вс 03 май, 2015 7:40 pm 
Не в сети
Модератор

Зарегистрирован: Сб 11 сен, 2004 6:33 am
Сообщения: 5081
Откуда: Москва
radiognome писал(а):
Перенаправить вывод в тот же файл ('>' или '>&', смотря какой шелл).

Так нельзя, потеряете всё содержимое файла.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 11 ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Зарегистрированные пользователи: Bing [Bot], Google [Bot], Yahoo [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB
Яндекс.Метрика