Я новичок в сценариях оболочки и в среде Linux.
В моем проекте я пытаюсь найти следующий текст из файла httpd.conf
<Directory '/somedir/someinnerdir'>
AllowOverride All
</Directory>
, а затем удалите этот текст и снова перепишите тот же текст.
Причиной такой переписки является то, что сценарий будет запускаться при первой установке веб-приложения, но он может быть снова запущен через некоторое время, так как другая часть этого сценария оболочки также выполняет другие задачи. Так что в первый раз этот текст не будет найден и будет просто записан, но позже при запуске скрипта этот текст будет найден, и его нужно будет удалить и снова написать.
Итак, часть моего сценария, с которой я пытаюсь достичь этого, выглядит примерно так:
grep -ve "<Directory '/somedir/someinnerdir'>\\nAllowOverride All\\n</Directory>" /etc/httpd/conf/httpd.conf > tmp_direct
echo -e "<Directory '/somedir/someinnerdir'>\\nAllowOverride All\\n</Directory>" >> tmp_direct
mv tmp_direct /etc/httpd/conf/httpd.conf
В настоящее время у меня нет кода передо мной, поэтому могут быть некоторые синтаксические ошибки выше, но логика / кодировка те же.
Вышеупомянутый фрагмент кода не может выполнить то, чего я хочу достичь, поскольку команда grep не поддерживает многострочный поиск.
Моя ОС - Fedora 8.
Можете ли вы предложить что-то в этом коде, чтобы достичь того, что нужно, или может быть какой-то другой альтернативой.
Любая помощь в этом отношении будет высоко оценена.
Заранее спасибо.
Спасибо за ваши ответы.
Извините за предыдущий неверный код. Это исправлено.
Чарли и я-стон, из-за ограничений работоспособности я не смогу реализовать sed или perl, так как его нужно будет добавить в среду, в которую мы будем распространять этот проект.
Стив, я хочу проверить несколько строк. Я не помещал это в блоки кода, таким образом это удалило теги каталога. (
Так что мне нужно будет найти какой-то другой выход.
Еще раз спасибо.
С уважением.