Como editar diariamente ( automaticamente ) um arquivo .htm ? [RESOLVIDO]

1. Como editar diariamente ( automaticamente ) um arquivo .htm ? [RESOLVIDO]

Luiz Carlos
luizcarlos18rj

(usa Suse)

Enviado em 11/02/2015 - 08:28h

Oi pessoal sou iniciante em shell script e preciso muito da ajuda de vcs, meu caso é que tenho um página web, com um arquivo chamado "Usoint.htm", essa página faz referência a um endereço em outro servidor na rede, onde diariamente é posto um arquivo .pdf com os "projetos do dia", de modo que todo tia tem que editar essa página html e "mudar" o nome do arquivo pois varia de acordo com a data corrente.

Ex. Data ( 11/02/2015 )

mm_menu_0901132203_0.addMenuItem("BNRJ","window.open('http://www.xxxx.xx/ftp/planoDoDia/set/pd11fev2015.pdf', '_blank');");
-----------------------------------------------------------------
Data ( 12/02/2015 )

mm_menu_0901132203_0.addMenuItem("BNRJ","window.open('http://www.xxxx.xx/ftp/planoDoDia/set/pd12fev2015.pdf', '_blank');");
-----------------------------------------------------------------
Data ( 13/02/2015 )

mm_menu_0901132203_0.addMenuItem("BNRJ","window.open('http://www.xxxx.xx/ftp/planoDoDia/set/pd13fev2015.pdf', '_blank');");

-----------------------------------------------------------------

E assim successivamente... todos os dias eu tenho que alterar o nome do arquivo na referência, então gostaria de um script.sh que:

1 - Abrisse o arquivo Usoint.htm para edição.
2 - Localizasse (tipo grep )a linha onde está escrito a tag "planododia", qe é justamente a linha onde tá o nome do arquivo pdf
3 - Trocasse o nome de acordo com a data corrente tipo criando variáveis usando os atributos do comando data para que o nome sempre ficasse no formato:

pd13fev2015.pdf ( pd[data-dia][data_mês_por_extenso_abreviado_em_português][data_ano_quatro_digitos]

4 - Ficasse configurado pra refazer esse passo todos os dias

Alguém pode me ajudar?

Desde já agradeço.



  


2. MELHOR RESPOSTA

Renan Arantes
R3nan

(usa Debian)

Enviado em 12/02/2015 - 11:04h

fiz o script pra vc, é so cria-lo no mesmo diretorio que esta o html e agenda-lo para ser executado pelo cronttab


#!/bin/bash
MES=$(date | awk '{print $2}' | tr F f)
DIA=$(date | awk '{print $3}')
ANO=$(date | awk '{print $6}')
LINHANEW="planoDoDia\/$MES\/pd$DIA$MES$ANO.pdf\', \'_blank\');\");"
sed -i "s/planoDoDia.*/$LINHANEW/" Usoint.html


testa ai e nos fale, ;)

3. Re: Como editar diariamente ( automaticamente ) um arquivo .htm ? [RESOLVIDO]

Renan Arantes
R3nan

(usa Debian)

Enviado em 11/02/2015 - 11:03h

posta o codigo fonte do seu htm


4. Re: Como editar diariamente ( automaticamente ) um arquivo .htm ? [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 11/02/2015 - 12:04h

luizcarlos18rj escreveu:

Oi pessoal sou iniciante em shell script e preciso muito da ajuda de vcs, meu caso é que tenho um página web, com um arquivo chamado "Usoint.htm", essa página faz referência a um endereço em outro servidor na rede, onde diariamente é posto um arquivo .pdf com os "projetos do dia", de modo que todo tia tem que editar essa página html e "mudar" o nome do arquivo pois varia de acordo com a data corrente.

Ex. Data ( 11/02/2015 )

mm_menu_0901132203_0.addMenuItem("BNRJ","window.open('http://www.xxxx.xx/ftp/planoDoDia/set/pd11fev2015.pdf', '_blank');");
-----------------------------------------------------------------
Data ( 12/02/2015 )

mm_menu_0901132203_0.addMenuItem("BNRJ","window.open('http://www.xxxx.xx/ftp/planoDoDia/set/pd12fev2015.pdf', '_blank');");
-----------------------------------------------------------------
Data ( 13/02/2015 )

mm_menu_0901132203_0.addMenuItem("BNRJ","window.open('http://www.xxxx.xx/ftp/planoDoDia/set/pd13fev2015.pdf', '_blank');");

-----------------------------------------------------------------

E assim successivamente... todos os dias eu tenho que alterar o nome do arquivo na referência, então gostaria de um script.sh que:

1 - Abrisse o arquivo Usoint.htm para edição.
2 - Localizasse (tipo grep )a linha onde está escrito a tag "planododia", qe é justamente a linha onde tá o nome do arquivo pdf
3 - Trocasse o nome de acordo com a data corrente tipo criando variáveis usando os atributos do comando data para que o nome sempre ficasse no formato:

pd13fev2015.pdf ( pd[data-dia][data_mês_por_extenso_abreviado_em_português][data_ano_quatro_digitos]

4 - Ficasse configurado pra refazer esse passo todos os dias

Alguém pode me ajudar?

Desde já agradeço.



Dúvidas:

- É certeza que o trecho de exemplo inteiro ou em partes não aparece em mais nenhum lugar do HTML?
- Em HTML não existe tag planododia, você referiu-se a string no path da url?
- Você realmente precisa resolver isto utilizando shell-script? JavaScript não seria uma ideia melhor?




5. Obrigado por responderem.

Luiz Carlos
luizcarlos18rj

(usa Suse)

Enviado em 12/02/2015 - 09:06h

Sinceramente agradeço muito por ajudarem, para esclarecer melhor vou responder as perguntas:

1 - É certeza que o trecho de exemplo inteiro ou em partes não aparece em mais nenhum lugar do HTML?
R: sim

2 - Em HTML não existe tag planododia, você referiu-se a string no path da url?
R: Me perdoe, não sou da área de web, e empreguei o termo "tag" incorretamente, o que eu quis dizer foi "termo", desse modo quis dizer que queria que o script Localizasse (tipo grep ) a linha onde está escrito O "TERMO" "planododia", qUe é justamente a ÚNICA linha onde tá o nome do arquivo pdf ( fazendo referência a ele )

3 - Você realmente precisa resolver isto utilizando shell-script? JavaScript não seria uma ideia melhor?
R: Como estou iniciando os estudos em Linux, começei por shell script, de modo que conforme estou estudando ele, já me familiarizei com alguns comandos e um pouco de sua sintaxe, como nunca vi JS, não sei nada da linguagem e gostaria de entender o código.


Desde já agradeço


6. Re: Como editar diariamente ( automaticamente ) um arquivo .htm ? [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 12/02/2015 - 10:13h

A solução é modificar o seu javascript para criar o nome do arquivo baseado no padrão de data usado. Você consegue fazer a edição com várias ferramentas do shell sem muito esforço mas a garantia de que isto funcione e médio e longo prazos é pequena e a manutenção será sempre terrível.

Encontrei na web, alguns links com informações relacionadas ao seu objectivo:

http://www.codingforums.com/javascript-programming/192847-variable-file-path-based-date-variables.ht...
http://www.codingforums.com/dom-and-json-scripting/103615-creating-javascript-link-image-url-based-d...
http://forums.devshed.com/javascript-development-115/change-link-url-based-date-615113.html

Duas últimas observações:

1. ".htm" não é padrão para arquivos HTML.
2. O formato de data usado é inadequado para organização (mas talvez também seja irrelevante no contexto).


7. Re: Como editar diariamente ( automaticamente ) um arquivo .htm ? [RESOLVIDO]

Luiz Carlos
luizcarlos18rj

(usa Suse)

Enviado em 19/02/2015 - 08:14h

R3nan escreveu:

fiz o script pra vc, é so cria-lo no mesmo diretorio que esta o html e agenda-lo para ser executado pelo cronttab


#!/bin/bash
MES=$(date | awk '{print $2}' | tr F f)
DIA=$(date | awk '{print $3}')
ANO=$(date | awk '{print $6}')
LINHANEW="planoDoDia\/$MES\/pd$DIA$MES$ANO.pdf\', \'_blank\');\");"
sed -i "s/planoDoDia.*/$LINHANEW/" Usoint.html


testa ai e nos fale, ;)


Obrigado pela dica!! Demais mesmo...

Ao entender como funciona, "modifiquei" de acordo com o script abaixo, mas não testei efetivamente no servidor, primeiro criei uma página htm simples no bloco de notas e rodei o código e funcionou, vou agendar no contrab e ver e posto aqui.

########## DECLARAÇÃO DE VARIÁVEIS #############
MES_en=$(date +%B)
DIA=$(date +%d)
ANO=$(date +%Y)

########## DECLARAÇÃO DE FUNÇÕES #############
mes_ptbr(){

case $MES_en in

January) MES_ptbr="jan";;

February) MES_ptbr=fev;;

March) MES_ptbr=mar;;

April) MES_ptbr=abr;;

May) MES_ptbr=mai;;

June) MES_ptbr=jun;;

July) MES_ptbr=jul;;

August) MES_ptbr=ago;;

September) MES_ptbr=set;;

October) MES_ptbr=out;;

November) MES_ptbr=nove;;

December)MES_ptbr=dez;;

esac
}

########## INÍCIO #############

## TESTE ##
#echo $MES_en
#echo $DIA
#echo $ANO
mes_ptbr

LINHANEW="planoDoDia\/$MES_ptbr\/pd$DIA$MES_ptbr$ANO.pdf\', \'_blank\');\");"
sed -i "s/planoDoDia.*/$LINHANEW/" Usoint.htm

#FIM








8. Re: Como editar diariamente ( automaticamente ) um arquivo .htm ? [RESOLVIDO]

Renan Arantes
R3nan

(usa Debian)

Enviado em 19/02/2015 - 16:27h


blz se puder marcar como a melhor resposta pra mim ganhar uns pontinhos eu agradeço heehhe






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts