Я работаю над файлом файла sed, и я запускаю его при ошибке «Недопустимое предшествующее регулярное выражение» при его запуске. Ниже находится файл целиком.Недопустимое предыдущее регулярное выражение, заданное sed
Я уже много сделал для этого, как на этом сайте, так и в другом месте. Многие вопросы, заданные здесь, привели к необходимости либо расширять регулярные выражения, либо что-то ускользало неправильно. Я определил это как расширенное выражение, которое уже необходимо для замены электронной почты.
#!/bin/sed -rf
#/find_this thing/{
#s/ search_for_this/ replace_with_this/
#s/ search_for_this_other_thing/ replace_with_this_other_thing/
#}
#Search and replace #ServerAdmin (with preceding no space) email addresses using a regular expression that has the .com .net and so on domain endings as option so it will find [email protected] and replace it in line with admin's email address.
ServerAdmin/ {
s/\b[A-Za-z0-9._%-][email protected](?:[a-zA-Z0-9-]+\.)+(\.[A-Za-z]]{2,4})?\b/[email protected]/
}
#Enable user's Public HTML directories
/UserDir/ {
s/disable$/enable/
s/^#User/User/
}
#Replace the only #ServerName (with preceding no space) followed space and text with Our server ip
/#ServerName */ c\ ServerName server.ip.address.here/
Я зову его из термических как ./config-apache.sed /etc/httpd/conf/httpd.conf и получить это возвращается.
/bin/sed: file ./apache-install.sed line 12: Invalid preceding regular expression
внутри VIM линии 12, я dentified в качестве единственного }
выше #Enable user's Public HTML directories
высоко ценится, я поймал]] я был там, но продолжал с видом на вторую точку. Вчера вечером я сбил меня с ума. Я дам ему вихрь и посмотрю, дает ли он мне то, что я искал. –
Это решение действительно нуждается в работе после удаления ненавязчивой нотации PCRE, а также для поиска точки необязательно, а также для соответствия «@localhost». Однако при фактическом запуске исправленного скрипта он показывает, что он заменяет элементы, когда он выгружает conf в STDOUT, но при повторном анализе с помощью 'sed -rne '/ \ b [A-Za-z0-9 ._% -] + @ ([a-zA-Z0-9 -] (\.)?) + ([A-Za-z] {2,4})? \ b/p '/ etc/httpd/conf/httpd.conf' он показывает что никаких изменений не было. –
Вы имели в виду опцию '-i (или' -i.bak'), чтобы перезаписать исходный файл? (Предполагается, что у вас есть GNU 'sed', конечно.) (Для электронных писем localhost я думаю, что вам просто нужно второе регулярное выражение, конечно, это будет проще, чем заставить его в тот, который у вас уже есть.) –