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'
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>
Eu vejo três problemas:
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'
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'
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'
Tags bash