Multi Localizar e Substituir Código Html

0

Eu tenho um erro de URL em vários arquivos html que preciso localizar e substituir.

Atualmente, minhas páginas mostram:

src="//https:

e preciso encontrar e substituir tudo com:

src="https:

Alguém sabe uma maneira de fazer isso no Linux?

    
por Cris W 21.11.2015 / 10:47

2 respostas

1

A pesquisa por replace multiple files [linux] encontrou várias respostas, mas eu não me importo muito com eles. Demasiado uso supérfluo de cat , ls para obter uma lista de nomes de arquivos e tal. Então vou postar uma resposta mais limpa.

Se eles estão todos no mesmo diretório, eu usaria um pequeno script como este:

#!/bin/bash
mkdir newdir
for i in *.html
do
    sed 's!src="//https:!src="https:!g'<"$i" > "newdir/$i"
done

E agora os arquivos corrigidos estarão todos em newdir . Note que não-html os arquivos não serão copiados, portanto tenha cuidado. Use diff -r para comparar e verifique os resultados.

Se você tem uma estrutura de diretórios mais complicada, o mais simples é executar o script em cada diretório. Se você tiver apenas alguns, apenas faça manualmente. Se você tem muitos, você gostaria de usar outro script para percorrer a árvore e chama isso. Eu não vou entrar nisso aqui; se você precisar, postar outra pergunta.

Edit: Você também pode usar -i para substituição no local como em Jakuje's responda. Eu prefiro uma abordagem mais cautelosa, eu mesmo.

    
por 21.11.2015 / 11:22
1

Este comando sed deve fazer isso:

sed -i -e 's/src="\/\/https:/src="https:/g'your_file

Testesimples:

$echo'sometextsrc="//https: some more text' | \
  sed -e 's/src="\/\/https:/src="https:/g'sometextsrc="https: some more text
    
por 21.11.2015 / 11:15