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.