Valeu pela ajuda Julio. O que eu preciso fazer é listar os arquivos dentro do diretório /var/james-2.3.0rc5/apps/james/var/mail/trash/ e o resultado estou jogando para um arquivo. E com o sed eu estou adicionando na frente de cada linha o comando "rm -f" mais o path da variável.
Não conheço o sed e essa é minha primeira tentativa. O problema na verdade é que ele funciona bem quando eu executo o script direto ou o comando na mão, mas quando executo com o nohup e & ele me manda a mensagem de garbled. 2009/1/8 Julio C. Neves <[email protected]> > Fala Marcelo, > > O cmd sed s/^/"rm -f /var/james-2.3.0rc5/apps/james/var/mail/trash/"/ > > está totalmente errado. Está tão erado que não entendi o que vc queria, mas > assim mesmo vou dar um pitaco: > > sed 's#^#rm -f /var/james-2.3.0rc5/apps/james/var/mail/trash/#' arquivo > > ou: > > sed 's#^#rm -f /var/james-2.3.0rc5/apps/james/var/mail/trash/#' <<< > $variavel > > Botei apóstrofos (obrigatórios) delimitando o escopo do sed e troquei as > barras separadoras por #, já que o sed define como separador o primeiro > caracter após o s. Faltou tb dizer o que vc estava "sedando". Um arquivo, > uma cadeia ou uma variável. > > OBS: Só agora me toquei que o ksh do sun pode não conhecer here strings > (<<<) se for este o caso, troque-a por um echo ... | sed ... > -- > Abração, > Julio > *Cursos de Shell e Zenity nos finais de semana: > - Em SP ligue (11) 2125-4747; > - Em DF ligue (61) 3223-3000; > - Turmas fechadas em outras cidades ligue (21) 8112-9988 > * > > 2009/1/8 Marcelo Vilela de Morais > <[email protected]<vilelamorais%40gmail.com> > > > > > > Bom dia galera. > > > > Estou tentando fazer a contagem de arquivos em um diretório e depois > apago > > os que já foram contados. Estou fazendo isso no Solaris 5.9 com o bash > > mesmo. > > Pra isso estou utilizando o seguinte script. > > > > #! /bin/bash > > > > hoje=`date +%Y%m%d` > > i=0 > > > > while true > > do > > # variaveis utilizadas > > m_path='/var/james-2.3.0rc5/apps/james/var/mail' > > l_path='/var/james-2.3.0rc5/apps/james/var/mail/result_lista' > > c_path='/var/james-2.3.0rc5/apps/james/var/mail/result_lista/conta' > > r_path='/var/james-2.3.0rc5/apps/james/var/mail/result_lista/remove' > > t_path='/var/james-2.3.0rc5/apps/james/var/mail/trash' > > s_path='/var/james-2.3.0rc5/apps/james/var/mail/trash/' > > contagem=0 # utilizada para registar o numero de mensagens por arquivo > > date_a=`date +%Y%m%d%H%M%S` #hora da coleta para a contagem > > i=`expr $i + 1` > > > > # lista total de arquivos e coloca em um arquivo para contagem total > > date_c=`date +%H%M%S%d%m%Y` # a variavel e usada para dar nome ao > > arquivo e para apagar tb > > ls $t_path/ >> $c_path/conta_nome_arq_$date_c.txt > > chmod 666 $c_path/conta_nome_arq_$date_c.txt > > > > # conta os arquivos > > contagem=`cat $c_path/conta_nome_arq_$date_c.txt | wc -l` > > if [ -n "$contagem" ] && [ $contagem -ne 0 ] ; then > > echo $date_a" Total: "$contagem >> $l_path/Lista_contagem_$hoje.txt > > chmod 666 $l_path/Lista_contagem_$hoje.txt > > fi > > > > # cria shell_script para remover os ja contados > > date_r=`date +%H%M%S%d%m%Y` # a variavel e usada para dar nome ao > > arquivo e para apagar tb > > sed s/^/"rm -f /var/james-2.3.0rc5/apps/james/var/mail/trash/"/ > > $c_path/conta_nome_arq_$date_c.txt > > $r_path/remove_arq_contado_$date_r.sh > > chmod 666 $r_path/remove_arq_contado_$date_r.sh > > > > # prepara o script > > chmod ugo+x $r_path/remove_arq_contado_$date_r.sh > > > > # remove os ja contados > > nohup $r_path/remove_arq_contado_$date_r.sh & > > > > # apaga script > > #rm -f $r_path/remove_arq_contado_$date_r.sh > > #rm -f $c_path/conta_nome_arq_$date_c.txt > > > > # troca de dia > > hoje=`date +%Y%m%d` > > done > > > > # EOF > > > > Eu o executo assim "nohup count_file_88_prod.sh &" e no nohup.out eu > tenho > > a > > seguinte resposta: > > sed: command garbled: s/ > > /var/james-2.3.0rc5/apps/james/var/mail/count_file_88_prod.sh: /rm -f > > /var/james-2.3.0rc5/apps/james/var/mail/trash//: not found > > > > Quando executo o script com "./count_file_88_prod.sh" ele executa > > normalmente. > > > > Alguem conhece essa diferença de execução ou alguma alternativa? > > > > Obrigado > > > > -- > > Marcelo Vilela > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > > > > > [As partes desta mensagem que não continham texto foram removidas] > > > -- Marcelo Vilela [As partes desta mensagem que não continham texto foram removidas]
