Veja se isto gera o seu arquivo:
uuencode ${ARQHOME}/${ARQUIVO} ${ARQUIVO} |tac | awk '{if (NR == 3) {print
$0"\n"} else{ print $0}}' | tac
o tac inverte o arquivo. Então eu inverto e, com o awk, eu insiro um espaço
vazio depois do terceiro registro. inverto novamente e o espaço em branco
agora esta antes das 3 ultimas linhas do arquivo.
Eu faço estas 2 inversoes para não precisar pegar o numero de linhas e ter q
calcular... talvez não seja a maneira mais eficiente.
Em 27/10/05, Marcos Braga <address@hidden> escreveu:
prezada lista,
recorro a vocês para ajuda em uma questão, creio que simples, para
os senhores(as).
baseado em vários scripts da lista, adaptei um script próprio,
adequado as necessidades para envio de mail com anexo via telnet. o
script funciona que é uma maravilha, mas estou com uma dúvida: para
enviar os anexos, utilizo o uuencode (até aí sem problemas), mas eu
preciso dividir o texto gerado pelo uuencode e pegar as 3 últimas linhas
e inserir um espaço entre o texto e as 3 últimas linhas, hoje eu faço
desta maneira:
-----
ARQHOME=/home/teste
ARQUIVO=teste.txt
ANEXOUU=`uuencode ${ARQHOME}/${ARQUIVO} ${ARQUIVO}`
ANEXOFOOT=`echo "${ANEXOUU}" | tail -n3`
ANEXOQL=`echo "${ANEXOUU}" | wc -l`
ANEXOCORTA=`expr $ANEXOQL - 3`
ANEXOHEADER=`echo "${ANEXOUU}" | head -n$ANEXOCORTA`
-----
neste trecho faço a divisão do arquivo e separo as 3 últimas linhas
(ANEXOFOOT) e o texto (ANEXOHEADER), utilizando o wc para contar a
quantidade de linhas (ANEXOQL) e o expr para retornar o arquivo sem as 3
últimas linhas (ANEXOCORTA).
no momento de enviar via telnet, faço assim:
----
echo "${ANEXOHEADER}"
echo "" # espaço necessário
echo "${ANEXOFOOT}"
-----
achei muito complicado e gostaria de saber se há uma forma mais simples
ou mais didática de dividir o texto proposto.
grato pelas inúmeras colaborações.
marcos braga