Substituindo / div por uma palavra em um arquivo

4

Eu gostaria de alterar quase </div> em um documento muito longo, consistindo de quase 2500 páginas, com a palavra "Index:", mas nunca funcionou. Eu tentei sed de muitas maneiras diferentes, por exemplo:

 sed '/s^[</div>]/Index:/g'

Mas não funcionou!

você poderia, por favor, me avisar qual é o comando correto?

exemplo

</div>
</div>
<script src="https://cdn.pkgs.org/assets/js/main.min.js?v10"></script><script>$(document).ready(function()</div>{app.init("pkgs.org", 101);
})
</div>
</script>
</body>

eu quero isso

Index:
Index:
<script src="https://cdn.pkgs.org/assets/js/main.min.js?v10"></script><script>$(document).ready(function()Index{app.init("pkgs.org", 101);
})
Index:
</script>
</body>
    
por Zahi 30.09.2018 / 16:14

2 respostas

9

Se você remover os colchetes, use % em vez de / como um delimitador sed para evitar confusão com / em </div> , mova o delimitador antes dos s para depois dele e remova o cursor, o regex funciona:

sed 's%</div>%Index:%g'
    
por 30.09.2018 / 17:03
5

Eu vejo três problemas:

  1. A sintaxe do seu comando sed está errada. Eu acredito que o que você quis dizer foi o comando search and replace, então o 's' deve vir antes da barra:

    sed 's/^[</div>]/Index:/g'

  2. O fato de sua string ter o caracter barra ('/') em sua string de pesquisa atrapalha com sed. Então você pode escapar da barra com uma barra invertida:

    sed 's/^[<\/div>]/Index:/g'

    ou use outro caractere como separador:

    sed 's|^[</div>]|Index:|g'

  3. Você está usando colchetes ( [</div>] ) em sua pesquisa, o que não é o que você deseja. Esta expressão corresponde a qualquer um dos caracteres dentro dos colchetes uma vez. Tente o seguinte comando sem colchetes:

    sed 's|^</div>|Index:|g'

por 30.09.2018 / 17:21

Tags