Altere seu padrão correspondente para não capturar espaços em branco antes de listar da seguinte maneira:
/^\s*Listen/
Isso incluirá todos
Listen ..
Listen ...
e outros.
Eu quero substituir a porta de escuta padrão do httpd para 9090. Eu posso editar a linha no arquivo httpd.conf usando abaixo
sed -i "/^Listen/c\Listen 9090" /etc/httpd/conf/httpd.conf
Mas a linha
Listen 80
pode ter espaço em branco antes disso.
Como eu ignoro esse espaço em branco para corresponder a essa linha?
Apenas permita que a expressão regular corresponda também ao espaço em branco. Você pode usar o grupo de caracteres [ \t]
(que corresponde aos caracteres de espaço ou tabulação) ou a expressão de colchete POSIX equivalente [:blank:]
.
Portanto, /^Listen/
se torna /^[[:blank:]]*Listen/
. (Observe que a expressão de colchetes é efetivamente escrita com um par de colchetes duplos.)
Tags sed linux regular-expression