Você pode usar o tail. Veja se te atende. 2009/6/18 Marcio Gil <marciom...@bol.com.br>
> > > Pessoal, > > Estou entrando agora no grupo, espero não só tirar minhas dúvidas como > dividir o pouco conhecimento que tenho sobre shell script. > > Me cadastrei no grupo pois não consegui descobri se existe uma maneira de > redirecionar a saída de um script para um arquivo e para stdout > simultaneamente. > > Explicando: eu criei um script para criar um resumo dos meus arquivos de > log (que está anexado no final da mensagem). Então eu utilizo assim: > > logsum -vm Cvf-*.log >Resumo.txt ; cat Resumo.txt > > Ou seja, ele salva o resumo em um arquivo texto e depois o exibe. Gostaria > que as linhas fossem sendo exibidas enquanto o arquivo é criado, já que o > processo pode demorar vários segundos quando o número de arquivos é grande. > Não sei se esta é uma dúvida básica. > > A seguir eu anexei o meu script caso alguem tenha um sugestão ou queira > aproveitar algo. > > --- arquivo logsum --- > > #!/bin/bash > # > # Monta resumo de arquivos de log > # Criado por: Márcio Gil Maldonado > # > > CMD=`basename $0` > > VER="0" > PER="0" > MAQ="0" > OLD="0" > FILES="" > ERROR="" > > while [ -n "$1" ] ; do > case "$1" in > -*) > if [ "$1" == "--help" ] ; then > echo "Monta resumo de arquivos de log" > echo > echo "Uso:" > echo " $CMD [opções] arquivos" > echo > echo "Opções:" > echo " -v Extrai a versão do nome do arquivo" > echo " -p Separa o período da versão (se -v foi especificado)" > echo " -m Extrai o nome da máquina do nome do arquivo" > echo " -o Listar campos no formato antigo" > echo > echo "Formato dos arquivos:" > echo " SIGLA[-Versão]-AAMM[-Máq].log" > echo > echo "Campos (formato antigo, opção -o):" > echo " [Máq] [Versão] [AAMM] data-ini data-fin n-dias n-ini n-fin n-erros" > echo > echo "Campos (formato novo):" > echo " [Máq] [Versão] [AAMM] data-ini data-fin n-dias n-erros n-trav n-av" > echo > echo " [Máq]: Máquina (opcional)" > echo " [Versão]: Versão ou Versão-AAMM" > echo " [AAMM]: Período (ano e mês)" > echo " data-ini: Data inicial" > echo " data-fin: Data final" > echo " n-dias: Número de dias funcionando" > echo " n-ini: Número de inicializações" > echo " n-fin: Número de finalizações" > echo " n-erros: Número de erros" > echo " n-trav: Número de travamentos" > echo " n-av: Número de violações de acesso" > echo > exit 0 > fi > OPT="$1" > case "$OPT" in > -*v*) VER="1"; OPT=`echo $OPT | sed s/v//` > esac > case "$OPT" in > -*p*) PER="1"; OPT=`echo $OPT | sed s/p//` > esac > case "$OPT" in > -*m*) MAQ="1"; OPT=`echo $OPT | sed s/m//` > esac > case "$OPT" in > -*o*) OLD="1"; OPT=`echo $OPT | sed s/o//` > esac > if [ "$OPT" != "-" ] ; then > ERROR="$ERROR $OPT" > fi > ;; > > *) > FILES="$FILES $1" > esac > shift > done > > if [ -n "$ERROR" ] ; then > echo -en "$0: Parâmetro inválido: $ERROR\n" >&2 > echo "$0: Execute '`basename $0` --help' para mais informações." >&2 > read > exit 1 > fi > > for f in $FILES ; do > t=${f%.*} > line="" > if [ "$MAQ" = "1" ] ; then > m=${t##*-} > t=${t%-*} > line="$m"$'\t' > fi > if [ "$VER" = "1" ] ; then > v=${t#*-} > if [ "$PER" = "1" ] ; then > p=${v##*-} > v=${v%-*} > line="$line$v"$'\t'"$p"$'\t' > else > line="$line$v"$'\t' > fi > else > p=${t#*-} > line="$line$p"$'\t' > fi > > dti=`grep "Sistema inicializado - " $f | head -n 1 | cut -f 4 -d " "` > dtf=`grep "Sistema inicializado - " $f | tail -n 1 | cut -f 4 -d " "` > ndd=`grep "Sistema inicializado - " $f | cut -f 4 -d ' ' | sort -mu | wc > -l` > nii=`grep "Sistema inicializado - " $f | wc -l` > nff=`grep " - Sistema finalizado." $f | wc -l` > nee=`egrep "^([0-9]+:){2}[0-9]+ - [A-Za-z]+:" $f | cut -f 3- -d ' ' | sort > -mu | wc -l` > nav=`egrep -i "^([0-9]+:){2}[0-9]+ - [A-Za-z]*AccessViolation[A-Za-z]*:" $f > | cut -f 3- -d ' ' | sort -mu | wc -l` > ntr=$(( $nii - $nff )) > > eval "udf=\$MAQ$m" > declare "MAQ$m=$dtf" > if [ "$udf" = "$dti" ] && (( $ndd > 1 )) ; then > ndd=$(( $ndd - 1 )) > fi > > if [ "$OLD" = "1" ] ; then > echo "$line$dti"$'\t'$dtf$'\t'$ndd$'\t'$nii$'\t'$nff$'\t'$nee > else > echo "$line$dti"$'\t'$dtf$'\t'$ndd$'\t'$nee$'\t'$ntr$'\t'$nav > fi > done > > > -- Anderson Raimundo Analista de Suporte +55 (71) 8178-5378 [As partes desta mensagem que não continham texto foram removidas]