Incluindo "em uma expressão regular usando sed no windows

1

Eu tenho:

echo finally came. 34^"This is the account of | sed "s:[1-9][0-9]["]:<a name=\"top\">&</a>:g"

e preciso obter

finally came. <a name="top">34"</a>This is the account of

Eu tentei sed "s:[1-9][0-9][\"]:<a name=\"top\">&</a>:g" e "s:[1-9][0-9][^"]:<a name=\"top\">&</a>:g" sem sucesso

Como faço para conseguir isso em cmd usando sed. Eu já instalei o sed no Windows, mas preciso de números de mach que tenham " no lado direito.

    
por user276498 24.11.2013 / 00:25

2 respostas

1

Eu nunca usei sed no Windows, mas pelo que posso dizer da sua pergunta, o escape parece funcionar de maneira semelhante ao do * nix. Você já está escapando do " no seu substituto, por que não fazer a mesma coisa no próprio padrão?

sed "s:[1-9][0-9]\":<a name=\"top\">&</a>:g"

Além disso, com base no pressuposto de que o shell com o qual você está trabalhando é semelhante aos shells clássicos * nix, eu usaria aspas simples em vez de aspas duplas para a expressão sed , o que significa que as aspas duplas não precisam para ser escapado:

sed 's:[1-9][0-9]":<a name="top">&</a>:g'
    
por 24.11.2013 / 01:38
1

isso faz

gnuwin32 sed.

C:\Users\user>echo finally came. 34^"This is the account of | sed "s:[1-9][0-9 ][\"]:^<a name=\"top\"^>

user@comp ~
$ echo finally came. 34\"This is the account of | sed "s:[1-9][0-9 ][\"]:%bl0ck_qu0te%:g"'

finally came. <a name="top">34"</a>This is the account of

"</a>":g"
finally came. <a name="top">34"</a>This is the account of

C:\Users\user>

E se você substituir ^& por "</a>" , também funcionará, no exemplo acima.

E você pode substituir ^</a^> por & , o que também é bom

para cygwin

%bl0ck_qu0te%

e você pode substituir %code% por %code% no exemplo acima do cygwin

    
por 24.11.2013 / 01:50

Tags