On Wed, Sep 19, 2001 at 08:45:13PM -0300, Algot wrote:
>       Amigos,
>       
>       Estou tentando fazer o seguinte:
>       
>       - procurar todos os arquivos com o nome teste.bak no diretório /home/ e 
> subdiretórios.
>       - mover esses arquivos para o diretorio /tmp/.
>       - colocar na primeira linha de todos eles a frase "Isso é um teste".
> 
>       Mas, estou tentando fazer isso tudo em apenas uma linha de comando. Tem 
> como ?
>       Obrigado,
> 
>       Algot.

(valido para bash e compatíveis)

começe com:

$ find /home
isso listará todos os arquivos que estão em /home

separe o arquivo que voce precisa com um grep ou egrep:
$ find /home | egrep '/teste.bak^'
o "^" significa fim da linha

agora faça um "for" para executar uma sequencia de comandos para todos
estes arquivos:
$ for ARQUIVO in `find /home | egrep '/teste.bak^'`; do echo $ARQUIVO; done

entre o "do" e o "done", voce pode colocar o que quiser, usando a variavel
$ARQUIVO como o nome do arquivo no loop for corrente.

agora, temos um problema... voce quer mover todos arquivos com o mesmo nome
para o mesmo diretorio??? eles vão um sobrescrever o outro... voce pode usar
o comando "tempfile" para isso. assim, eles serao gravados em um arquivo
temporario
isso deve resolver:

  TMPFILE=`tempfile`; echo "isso e um teste" > $TMPFILE; cat $ARQUIVO >> 
$TMPFILE;

entao, acho que isso resolve o problema... teste ai...

   for ARQUIVO in `find /home | egrep '/teste.bak^'`; do \
   TMPFILE=`tempfile`; \
   echo "isso e um teste" > $TMPFILE; cat $ARQUIVO >> $TMPFILE; \
   echo "arquivo $ARQUIVO modificado e gravado como $TMPFILE"; \
   done

Responder a