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

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

Re: [shell-script] inserir linha em branco em arquivo


From: Marcos Braga
Subject: Re: [shell-script] inserir linha em branco em arquivo
Date: Thu, 27 Oct 2005 12:48:12 -0400
User-agent: Mozilla Thunderbird 1.0.6 (Windows/20050716)

valeu mesmo tiago, funcionou perfeitamente. agora vou melhorar o script. muito obrigado mesmo.

marcos braga

Tiago Barcellos Peczenyj wrote:

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



reply via email to

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