Como usar um hash (#) como um delimitador para sed

1

Eu não usei sed com frequência e peço desculpas se essa pergunta for simples demais.

O seguinte funciona muito bem:

sed -i '/<\/IfModule>/i TEST' security2.conf

Agora quero usar # como o delimitador. Por que isso não funciona?

sed -i '#</IfModule>#i TEST' security2.conf
    
por Abs 31.08.2017 / 17:11

2 respostas

2

A página de manual para sed (1) escreve

/regexp/ Match lines matching the regular expression regexp.

\cregexpc Match lines matching the regular expression regexp. The c may be any character.

Você pode substituir /regexp/ por \#regexp# ou, no seu caso específico:

sed -i '\#</IfModule>#i TEST' security2.conf

Pessoalmente, eu testaria sem -i até ter certeza de que estava certo.

    
por 31.08.2017 / 17:30
3

Pesquisando # no manual sed(1) pode ser encontrado

 [0addr]#
         The ''#'' and the remainder of the line are ignored (treated as a
         comment), with the single exception that if the first two charac-
         ters in the file are ''#n'', the default output is suppressed.
         This is the same as specifying the -n option on the command line.

Então você escreveu um comentário que não é código.

    
por 31.08.2017 / 17:26