Uma solução com awk
poderia ser:
awk '/Analytics code start/ { t=1; print; system("cat myanalytics.txt") }
/Analytics code end/ { t=0 }
t==0 { print } ' index.html
(Eu indentei o código para aumentar a legibilidade, mas pode ser facilmente oneline)
Brevemente explicação:
- Quando
t==0
sempre imprime a linha atual - Se a linha atual corresponder a
"Analytics code start"
sett==1
e, em seguida, imprimir a linha atual e o arquivo desejado comsystem("cat myanalytics.txt")
- Agora,
t
é igual a1
, portanto a linha atual nunca é impressa, mas quando a linha atual corresponde a"Analytics code end"
,t
é definido como0
novamente, imprima a linha atual a partir de agora .
Nota:
Isso não editará seu arquivo index.html
.
Para modificar index.html
, você pode:
-
redirecione a saída de
awk
para um arquivo temporário e use um comando comomv
oucp
-
use
sponge
do pacotemoreutils
, da seguinte forma:awk '[.. commands like above ..]' index.html | sponge index.html