удаление текста из файла
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
-
- проходил мимо
удаление текста из файла
Решил вобщем скрипт на shell написать добавления пользователя в почте(ни когда не пользовался раньше shell) и встал вопрос каким образом удалить определенную строчку из файла fetchmailrc
Услуги хостинговой компании Host-Food.ru
Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
- serge
- майор
- Сообщения: 2133
- Зарегистрирован: 2006-07-30 15:34:14
- Откуда: Саратов
- Контактная информация:
-
- полковник
- Сообщения: 5845
- Зарегистрирован: 2007-12-07 13:51:33
- Откуда: Верх-Нейвинск
Re: удаление текста из файла
Код: Выделить всё
man grep
-
- проходил мимо
Re: удаление текста из файла
по поводу sed
делаю sed '/test@test.ru/d' fetchmailrc.bkp
выводит экран с удаленной строкой а в файле не удаляет, что то забыл добавить ?
grep щас проверим
делаю sed '/test@test.ru/d' fetchmailrc.bkp
выводит экран с удаленной строкой а в файле не удаляет, что то забыл добавить ?
grep щас проверим
-
- полковник
- Сообщения: 5845
- Зарегистрирован: 2007-12-07 13:51:33
- Откуда: Верх-Нейвинск
Re: удаление текста из файла
перенаправление потока в файлFox24RUS писал(а):что то забыл добавить ?
-
- проходил мимо
Re: удаление текста из файла
забыл опцию -i/-IFox24RUS писал(а):делаювыводит экран с удаленной строкой а в файле не удаляет, что то забыл добавить ?Код: Выделить всё
sed '/test@test.ru/d' fetchmailrc.bkp
Код: Выделить всё
sed -i '' '/test@test\.ru/d' fetchmailrc.bkp
Код: Выделить всё
sed -i '.bak' '/test@test\.ru/d' fetchmailrc.bkp
-
- лейтенант
- Сообщения: 863
- Зарегистрирован: 2007-09-24 12:41:05
- Откуда: dn.ua
- Контактная информация:
Re: удаление текста из файла
а не подскажите, как удалить\заменить в файле несколько строк ?
например, от начального шаблона, до конечного.
например, от начального шаблона, до конечного.
With best wishes, Sergej Kandyla
-
- полковник
- Сообщения: 5845
- Зарегистрирован: 2007-12-07 13:51:33
- Откуда: Верх-Нейвинск
Re: удаление текста из файла
смотря, что требуетсяpaix писал(а):например, от начального шаблона, до конечного.
-
- лейтенант
- Сообщения: 863
- Зарегистрирован: 2007-09-24 12:41:05
- Откуда: dn.ua
- Контактная информация:
Re: удаление текста из файла
требуется удалить\заменить\дописать несколько строк в переделах заданных маркеров.
Т.е., например, имеем конфиг нагиоса services.cfg
в котором секция каждого сервера начинается с определенных меток,
типа
грубо говоря хочется скриптом добавлять\удалять описания сервисов из конфига.
Разумеется нагиос как пример...
для однострочных аж бегом катит perl -pi -e 's///g'; с многострочными что-то не получалось...
в какую сторону надо копать?
Т.е., например, имеем конфиг нагиоса services.cfg
в котором секция каждого сервера начинается с определенных меток,
типа
Код: Выделить всё
## srv1 begin
...
define service{
use ext-service
host_name srv1
service_description Tomcat
check_command check_tomcat
}
define service{
use ext-service
host_name srv1
service_description SMTP
check_command check_smtp
}
...
## srv1 end
Разумеется нагиос как пример...
для однострочных аж бегом катит perl -pi -e 's///g'; с многострочными что-то не получалось...
в какую сторону надо копать?
With best wishes, Sergej Kandyla
-
- полковник
- Сообщения: 5845
- Зарегистрирован: 2007-12-07 13:51:33
- Откуда: Верх-Нейвинск
Re: удаление текста из файла
я на авк такое делал, в принципе нормально работает http://forum.lissyara.su/viewtopic.php?p=77717#p77717paix писал(а):грубо говоря хочется скриптом добавлять\удалять описания сервисов из конфига.
-
- лейтенант
- Сообщения: 863
- Зарегистрирован: 2007-09-24 12:41:05
- Откуда: dn.ua
- Контактная информация:
Re: удаление текста из файла
zg писал(а):я на авк такое делал, в принципе нормально работает http://forum.lissyara.su/viewtopic.php?p=77717#p77717
Код: Выделить всё
if ($1=="##" && tolower($2)==vhost) output=1;
if (output) print $0;
if (output && tolower($1)=="</virtualhost>") output=0;
действительно гибко и коротко...
вспомнил что когдато подобный функционал на седе реализовывал.
логика нижеприведенного куска примера основывается на том, что ищем позицию последнего патерна окончания пула,
оригинальный конфиг копируем во временный до строки позиции этого патерна, дальше в этот временный конфиг генерируем новый пул, вставляем оставшийся кусочек от позиции последнего патерна до конца оригинального конфига..
Код: Выделить всё
#----- adding php-fpm pool for user -----#
#### function ####
gen_phpfpm_pool(){
echo "Generating php-fpm pool"
conf="/usr/local/etc/php-fpm.conf"
tmpconf="/tmp/php-fpm.generating.txt"
# end line of file
endl=`cat ${conf} | wc -l`
# last pattern line number
patl=`sed -ne '/END POOL/=' ${conf} | tail -n 1`
#part with end of pools section
sed -n "1,${patl}p" ${conf} > ${tmpconf}
#adding our pool section:
cat << EOF >> ${tmpconf}
<!-- ${username} ${now} by $0 -->
<!-- php-fpm.conf pool v0.5.9 -->
<section name="pool">
<value name="name">${username}</value>
<value name="listen_address">/tmp/php-fpm/${username}.sock</value>
...
...
<!-- END POOL -->
EOF
# part of the end of original file
sed -n "`expr ${patl} + 1`,${endl}p" ${conf} >> ${tmpconf}
echo "Backuping old php-fpm.conf"
cp ${conf} ${conf}.bak.${now}
cp ${tmpconf} ${conf}
echo
echo "Done!"
echo "Now you can restart php-fpm pool"
echo "Please do: /usr/local/etc/rc.d/php-fpm restart"
echo
sleep 1
}
#### end function ####
With best wishes, Sergej Kandyla
-
- лейтенант
- Сообщения: 863
- Зарегистрирован: 2007-09-24 12:41:05
- Откуда: dn.ua
- Контактная информация:
Re: удаление текста из файла
елки, я курнул сильнее травы awk...
все еще проще, оказывается!
Вывести все строки файла f5, находящиеся между парами start/stop
все еще проще, оказывается!
Код: Выделить всё
awk '/start/,/stop/' f5
With best wishes, Sergej Kandyla
-
- полковник
- Сообщения: 5845
- Зарегистрирован: 2007-12-07 13:51:33
- Откуда: Верх-Нейвинск
Re: удаление текста из файла
ну тут встаёт проблема как вывести все строки, за исключением диапазона, авк этого по-моему не умеет.paix писал(а):все еще проще, оказывается
-
- лейтенант
- Сообщения: 863
- Зарегистрирован: 2007-09-24 12:41:05
- Откуда: dn.ua
- Контактная информация:
Re: удаление текста из файла
например, найти N строки первого маркера, и N2 второго., соотвественно вывести файл от 1-до N и от N2 до end
такой функционал должен быть..
возможно есть и еще более легкие способы...
такой функционал должен быть..
возможно есть и еще более легкие способы...
With best wishes, Sergej Kandyla
-
- полковник
- Сообщения: 5845
- Зарегистрирован: 2007-12-07 13:51:33
- Откуда: Верх-Нейвинск
Re: удаление текста из файла
-))) авк такой красоты штатно не умеет, а нештатно уже реализованноpaix писал(а):соотвественно вывести файл от 1-до N и от N2 до end
- rnd
- мл. сержант
- Сообщения: 112
- Зарегистрирован: 2007-11-06 20:36:25
- Откуда: RonDon
Re: удаление текста из файла
День добрый, извиняюсь за глупый вопрос... но все же:
Подскажите пожалуйста каким образом можно удалить из файла определенные символы?
Например закаментированные строки, или убрать подпись "www." в строке "www.mydomain.ru" чтоб осталось просто "mydomain.ru"
Спасибо.
Подскажите пожалуйста каким образом можно удалить из файла определенные символы?
Например закаментированные строки, или убрать подпись "www." в строке "www.mydomain.ru" чтоб осталось просто "mydomain.ru"
Спасибо.
-
- полковник
- Сообщения: 5845
- Зарегистрирован: 2007-12-07 13:51:33
- Откуда: Верх-Нейвинск
Re: удаление текста из файла
rnd писал(а):Подскажите пожалуйста каким образом можно удалить из файла определенные символы?
Код: Выделить всё
zg# echo www.mydomain.ru www.mydomain2.ru | sed 's/www\.//g'
mydomain.ru mydomain2.ru
zg#
- rnd
- мл. сержант
- Сообщения: 112
- Зарегистрирован: 2007-11-06 20:36:25
- Откуда: RonDon
Re: удаление текста из файла
спасибо конечно, но файл не изменился, пробовал через в консоли видно, что от файла отбрасывается все что связанно с "www." но вот как его теперь сохранить в таком виде?
Код: Выделить всё
cat test.txt test2.txt | sed 's/www\.//g'
-
- полковник
- Сообщения: 5845
- Зарегистрирован: 2007-12-07 13:51:33
- Откуда: Верх-Нейвинск
Re: удаление текста из файла
а чего ему меняться то?rnd писал(а):спасибо конечно, но файл не изменился
перенаправь вывод в файлrnd писал(а):но вот как его теперь сохранить в таком виде?
Код: Выделить всё
cat ... > file.txt
- rnd
- мл. сержант
- Сообщения: 112
- Зарегистрирован: 2007-11-06 20:36:25
- Откуда: RonDon
Re: удаление текста из файла
ну я просто думал он сохранится как "mydomain2" с новыми параметрамиzg писал(а):а чего ему меняться то?
просто я только учусь, и тонкостей всех не знаю )
Спасибо, помогло.