Como uso o sed para substituir uma linha?

0

Estou tentando substituir a linha

"['Used', 170], <c\!--Ma_P_ST1_vCPU_Used-->" 

com

"['Used', 555], <c\!--Ma_P_ST1_vCPU_Used-->" 

em um arquivo html.

Isso é o que eu tentei.

sed "s/['Used', 170], <\!--Ma_P_ST1_vCPU_Used-->/['Used', 170], <\!--Ma_P_ST1_vCPU_Used-->/" Code_edit.html

Tentei com vários mascaramentos. Não ajudando.

    
por Cooldude 08.10.2018 / 00:56

2 respostas

0

Em sed , há alguns caracteres com significado especial, que precisam ser citados.
Nesta frase:

['Used', 170], <\!--Ma_P_ST1_vCPU_Used-->

Você precisa citar [ , ] e \ :

\['Used', 170\], <\\!--Ma_P_ST1_vCPU_Used-->

Em seguida, para capturar o texto em torno do número, adicione parênteses de captura:

\(\['Used', \)170\(\], <\\!--Ma_P_ST1_vCPU_Used-->\)

E converta o 170 em [0-9]* (uma lista de números). Feito isso, o comando sed se torna:

sed "s/\(\['Used', \)[0-9]*\(\], <\\!--Ma_P_ST1_vCPU_Used-->\)/77/" <file

Os e usam as strings capturadas em cada parêntese.

    
por 08.10.2018 / 03:44
0

Isso ajudaria?

sed '/!--Ma_P_ST1_vCPU_Used-->/ s/170/555/' file
"['Used', 555], <c\!--Ma_P_ST1_vCPU_Used-->" 

Pesquise a linha correta e substitua 170 por 555.

    
por 11.10.2018 / 00:55

Tags