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

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

Re:[shell-script] fazer listagem com sed


From: Anderson Deluiz Santos
Subject: Re:[shell-script] fazer listagem com sed
Date: Wed, 30 Apr 2003 09:53:37 -0300

Como disse, nem todas as versoes de unix possuem o tar GNU. Por isso nao
posso usar -X.
os arquivos podem ser gerados aleatoriamente dependendo da maquina e da
vontade do usuario que vai fazer o backup. Por isso tenho que garantir que
a lista seja consistente com arqs/dirs informados nos arquivos arq1 e arq2.
Ja tentei o find (no AIX), mas ele cai num problema que se eu mandar excluir
da saida uma sequencia, ele pode excluir coisas demais ou de menos.
Ex.:

find /home ! -name /home/user2 -print

Nesse caso, so eh removida a entrada /home/user2. Caso eu tenha 
/home/user2/arquivo,
esse vai aparecer.
Entao eu coloco:

find /home (! -name /home/user2/ -o ! -name /home/user2/*) -print

Funciona beleza. Mas como vou fazer para esse find ler a lista e montar
as comparacoes ? Pensei no sed...agora...mais ou menos assim :

find `cat arq1` !( `sed <diretivas> arq2`) -print

onde o sed leria arq2 e mandava uma saida na forma " -name /dir1/ -o  -name
/dir1/* -o  -name /dir2/arquivo" e eu forcaria que todas as entradas em
arq2 que sao diretorios terminem obrigatoriamente com /, na forma

# cat arq2
/home/user2/ <== diretorio
/home/user1/arquivo1 <== arquivo

Consegui me expressar bem ?

Anderson
>-- Mensagem original --
>To: address@hidden
>From: Frederico Argolo <address@hidden>
>Date: Wed, 30 Apr 2003 09:07:47 -0300 (ART)
>Subject: Re:[shell-script] fazer listagem com sed
>Reply-To: address@hidden
>
>
>
>Bom se vc nao quer usar o -X do tar, o que vc pode
>fazer eh listar na mao os diretorios que vc quer
>backupear.
>
>Ou seja,
>$car arq1
>/home/user1
>/home/user3
>/home/user4
>.
>.
>.
>
>Repare que nao mencionei o /home/user2. Entao nao sera
>backupeado. Agora, caso vc tenha muitos diretorios, vc
>pode tentar usar o find para te ajudar.
>
>P.S: Descobri depois de muito apanhar,  que o -X do
>tar, NAO FUNCIONA no tar 1.13!! Uso slack, o slack 7 e
>8 vem com essa tar, o slack 9 já pos um tar mais
>atual.
>
>[]?s
>     Frederico Argolo
>
> --- Anderson Deluiz Santos <address@hidden>
>escreveu: > Não!
>> Caso o arquivo arq2 exista, ele conterá a lista dos
>> arquivos/diretorios
>> que NÃO devem ser backupeados.
>> Ex.:
>> $cat arq1
>> /home
>> /dados01
>> /dados02
>> /usr/scripts
>> /var
>>
>> $cat arq2
>> /home/user2
>> /var/squid/cache
>>
>> arq1 diz que será feito backup dos arquivos e
>> subdiretórios dentro de /home,
>> /dados01, /dados02, /usr/scripts e /var.
>>
>> arq2 diz que o subdiretório /home/user2 não será
>> backupeado mesmo estando
>> abaixo do /home e o mesmo vale para /var/squid/cache
>> estando abaixo de /var.
>>
>> Poderia usar a opção -X para o tar GNU, mas nesse
>> caso limitaria o shell
>> a somente funcionar com esse tar. A opção -X não
>> existe em todas as versões
>> do tar disponíveis nos UNIXes.
>>
>> Vou tentando em awk que conheço um pouco mais
>> enquanto isso.
>>
>> Valeu...
>>
>>
>> >-- Mensagem original --
>> >To: address@hidden
>> >From: "wellor" <address@hidden>
>> >Date: Tue, 29 Apr 2003 20:48:35 -0300
>> >Subject: Re:[shell-script] fazer listagem com sed
>> >Reply-To: address@hidden
>> >
>> >
>> >tar -cvf /dev/rmt0 `cat arq1`
>> >não serve ?
>> >
>> >
>> >
>> >> Estou fazendo um script que deve gerar uma
>> listagem de
>> >arquivos a serem
>> >> backupeados com base em dois outros arquivos que
>> contem
>> > os diretorios/arquivos
>> >> a serem backupeados e os que NAO serao
>> backupeados.
>> >>
>> >> Alguem pode falar para utilizar a opcao -

>> >X do tar, mas esta so funciona
>> >> na versao GNU e pretendo montar a solucao cross-
>> >plataforma.
>> >>
>> >> Sendo assim, tenho os dois arquivos com os
>> diretorios/a
>> >rquivos:
>> >> arq1 => arqs/dirs que serao backupeados
>> >> arq2 => arqs/dirs que NAO serao backupeados
>> >>
>> >> $cat arq1
>> >> /home
>> >> /dados01
>> >> /dados02
>> >> /usr/scripts
>> >> /var
>> >>
>> >> $cat arq2
>> >> /home/user2
>> >> /var/squid/cache
>> >>
>> >> Como faco para gerar essa listagem com sed para
>> usar co
>> >m o tar?
>> >>
>> >> Comecei com o find
>> >>
>> >> tar -cvf /dev/rmt0 `find \`cat arq1\` -
>> >print | sed <alguma_coisa_que_nao_sei>`
>> >>
>> >> Tentei com o grep -
>> >v, mas sem colocar o '^' no inicio de cada linha
>> nao
>> >> posso garantir que tratarei o arq/dir certo.
>> >>
>> >> Valeu,
>> >>
>> >> Anderson
>> >>
>> >>
>> >>
>> >>
>> >>
>>
>-------------------------------------------------------
>> >--------------
>> >> Esta lista não admite a abordagem de outras
>> liguagens d
>> >e programação, como perl, C etc. Quem insistir em
>> não seg
>> >uir esta regra será moderado sem prévio aviso.
>> >>
>>
>-------------------------------------------------------
>> >--------------
>> >> Sair da lista: shell-script-
>> >address@hidden
>> >>
>>
>-------------------------------------------------------
>> >--------------
>> >> Esta lista é moderada de acordo com o previsto em
>> http:
>> >//www.listasdiscussao.cjb.net
>> >>
>>
>-------------------------------------------------------
>> >--------------
>> >>
>> >>
>> >> Seu uso do Yahoo! Grupos é sujeito às regras
>> descritas
>> >em: http://br.yahoo.com/info/utos.html
>> >>
>> >>
>> >>
>> >
>> >
>>
>>__________________________________________________________________________
>> >Seleção de Softwares UOL.
>> >10 softwares escolhidos pelo UOL para você e sua
>> família.
>> >http://www.uol.com.br/selecao
>> >
>> >
>> >
>> >
>>
>>---------------------------------------------------------------------
>> >Esta lista não admite a abordagem de outras
>> liguagens de programação, como
>> > perl, C etc. Quem insistir em não seguir esta
>> regra será moderado sem
>> prévio
>> > aviso.
>>
>>---------------------------------------------------------------------
>> >Sair da lista:
>> address@hidden
>>
>>---------------------------------------------------------------------
>> >Esta lista é moderada de acordo com o previsto em
>> http://www.listasdiscussao.cjb.net
>>
>>---------------------------------------------------------------------
>> >
>> >
>> >Seu uso do Yahoo! Grupos é sujeito às regras
>> descritas em: http://br.yahoo.com/info/utos.html
>> >
>> >
>> >
>>
>>
>>
>>
>>
>---------------------------------------------------------------------
>> Esta lista não admite a abordagem de outras
>> liguagens de programação, como perl, C etc. Quem
>> insistir em não seguir esta regra será moderado sem
>> prévio aviso.
>>
>---------------------------------------------------------------------
>> Sair da lista:
>> address@hidden
>>
>---------------------------------------------------------------------
>> Esta lista é moderada de acordo com o previsto em
>> http://www.listasdiscussao.cjb.net
>>
>---------------------------------------------------------------------
>>
>>
>> Seu uso do Yahoo! Grupos é sujeito às regras
>> descritas em: http://br.yahoo.com/info/utos.html
>>
>>
>
>_______________________________________________________________________
>Yahoo! Mail
>O melhor e-mail gratuito da internet: 6MB de espaço, antivírus, acesso
POP3,
> filtro contra spam.
>http://br.mail.yahoo.com/
>
>
>---------------------------------------------------------------------
>Esta lista não admite a abordagem de outras liguagens de programação, como
> perl, C etc. Quem insistir em não seguir esta regra será moderado sem
prévio
> aviso.
>---------------------------------------------------------------------
>Sair da lista: address@hidden
>---------------------------------------------------------------------
>Esta lista é moderada de acordo com o previsto em 
>http://www.listasdiscussao.cjb.net
>---------------------------------------------------------------------
>
>
>Seu uso do Yahoo! Grupos é sujeito às regras descritas em: 
>http://br.yahoo.com/info/utos.html
>
>
>





reply via email to

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