Usando o Grep para vários encontrar e substituir

0

Eu tenho 90 arquivos HTML e preciso colocar um novo link de script JS na seção principal de cada um deles. Agora, eu poderia usar algum mecanismo F & amp; R de algum compilador de código

Como:

find: </head>
replace it with: link to JS script</head>

Mas eu não gosto desta solução porque o código está bagunçado depois disso.

Eu estava me perguntando - como posso usar o grep para inserir um novo link de script antes da tag em todos os arquivos .html no diretório específico?

    
por Michał Żywiecki 01.09.2015 / 07:23

2 respostas

5

grep não substitui ou modifica arquivos. Use sed :

sed -i 's|</head>|link to JS script</head>|' *.html

Como funciona

-i informa ao sed para modificar os arquivos no lugar.

O comando sed mais importante é o substituto. Ele tem o formato s|old|new| , em que old é uma expressão regular. Aqui, substituímos </head> por link to JS script</head> .

*.html informa ao sed para operar em todos os arquivos html que o shell encontra no diretório atual.

    
por John1024 01.09.2015 / 07:52
0

Você pode usar o Vim no modo Ex:

for q in *.html
do
  ex -sc '%s.</head>.link to JS script&.|x' "$q"
done
  1. % seleciona todas as linhas

  2. s substituto

  3. x salvar e fechar

por Steven Penny 16.04.2016 / 18:50