shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Tranformar um campo em link html


From: MrBiTs
Subject: Re: [shell-script] Tranformar um campo em link html
Date: Sun, 16 Jan 2011 21:37:39 -0200
User-agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.13) Gecko/20101207 Lightning/1.0b2 Thunderbird/3.1.7

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

On 01/16/2011 18:10 , trans548 wrote:
> Boa tarde pessoal,
> 
> Gostaria da ajuda de vocês em um pequeno script que estou fazendo.
> 
> Tenho alguns arquivos.txt com dados parecidos com os debaixo:
> 
> 2008:20081104 
> 2009:20091113 
> 2003:20030321 
> 2003:20031006 
> 2001:20011004 
> 2001:20011031 
> 97:19970516 
> 97:19970517 
> 
> Explicando:
> Os números a esquerda dos dois pontos são pastas e os números a direita
> dos dois pontos são arquivos.htm
> 
> Estou tentando fazer um script para transformar os dados acima em link html, 
> mas nao estou conseguindo, vejam a baixo o script:
> 
> #!/bin/bash
> t=$1   # nome da pagina.htm
> echo "<html>" > ${t}.htm
> 
> echo "<head>  <title> $t </title>" >> ${t}.htm
> 
> echo "<body>" >> ${t}.htm
> echo "<center><h2> "$t" </h2> </center><hr color=#ffffff>" >> ${t}.htm
> 
> while read linha  # lendo o arquivo com os dados
> do
> a=$(echo $linha  `cut -d: -f1`)   # separando os campos
> b=$(echo $linha  `cut -d: -f2`)
> 
> #inserindo os campos  no link
> echo "<a href="$a/${b}.htm"> $b</a> <br>" >> ${t}.htm
> done <  lista
> 
> echo " </body> </html>" >> ${t}.htm
> ----------- 
> Tenho como resultado uma pagina.htm com todos os dados lista em um único 
> link, quando deveria ser oito links. Onde estar o erro?
> 
> Desde já agradeço qualquer a juda.
> 
> J.Sabino

Os escapes de aspas duplas não existem no seu código e podem gerar erros. Eu 
usaria here documents e faria algo assim:

Há erros na sua codificação HTML também. Vá à procura de conceitos. Eles estão 
fazendo falta a você.

#!/bin/bash

t=$1   # nome da pagina.htm

cat arquivo | while read linha ; do
IFS=":"
set - $linha
# as duas linhas acima farão o separador de campo
# ser o : e separarão a linha em campos $1 a $N
# No seu exemplo teremos:
# $1 = 2008
# $2 = 20081104
# Economizamos processamento, chamadas a programas
# externos e tudo o mais.

cat <<__EOF__>>${t}.html
<html>
        <head>
                <title>${t}</title>
        </head>
        <body>
                <center><h2>"${t}"</h2 </center><hr color=#ffffff>      
                <a href="${1}/${2}.htm"> $b</a> <br>
        </body>
</html>
__EOF__
done

E é HTML. HTM é coisa de usador windows.

Acho que esse é um começo. Provavelmente o meu exemplo não resolva o seu 
problema, mas dará a você um norte para começar.

E, permita-me corrigí-lo. A grafia correta é "abaixo" e não "a baixo"; 
"deveriam ser oito", não "deveria ser oito"; "onde está", não
"onde estar". Internet não é sinônimo de idiocracia, senhores.

- -- 

LLAP

.0. MrBiTs - address@hidden
..0 GnuPG  - 
http://keyserver.fug.com.br:11371/pks/lookup?op=get&search=0x6EC818FC2B3CA5AB
000 http://www.mrbits.com.br


-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (Darwin)

iQEcBAEBCAAGBQJNM4FDAAoJEG7IGPwrPKWrI8MH+wZ7OLrQWaw4qFeARHvL3DR7
k081VUkcLHwcv5tUWyr3j6zT1EbyhvkQDVlyZHCZv2Ww+RPgvG5BMW4m0o83jwsU
pN4CwQ/w/Fgk322BDPEhlQWfKjaOVue5ozd5BRn4E9Fngno8LafSvU2gv2gtZNlj
4CC370Bq7hSw3IaSny6nao+UYqHB+jZpwHzmCU3RucarCO32P1uEvY32y5xOPpyk
RadLobiLIzF+6Z2zaKsQFIdcJL1kCg4eVl6eBZzqpQaPWm1Kcp5VvWDCCDe7q+kh
cFQghHooDlvlc79Wu4uM+9Xc28NmcDiam0epVnVrPmYGRhvykcfp3Xase+3lw1c=
=Klat
-----END PGP SIGNATURE-----


reply via email to

[Prev in Thread] Current Thread [Next in Thread]