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

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

Re: [shell-script] testar nome de arquivo


From: Raphael R. O.
Subject: Re: [shell-script] testar nome de arquivo
Date: Wed, 8 Aug 2012 13:19:03 -0300

Joao, tudo bem ?

Cara, eu não sabia que eu poderia fazer esse tipo de filtro apenas no case!
Isso já resolveu meu problema, agora vou terminar o script com a mudanças
que estou planejando...

Realmente eu não precisaria do primeiro bloco no sed -r
's,(.*_)(frapi\.tar),\npack=\2,' <<< $file e esse \n ai não sei de onde
tirei rs

Uma dúvida, porque tenho que usar 3 sinais de menor? Em que que regra isso
entra?

Obrigado!

Abraços!

*Raphael Rabelo*
*Fone:* (11) 6105-8257
*MSN:* address@hidden
*Site:* www.raphaelr.com.br
*LinkedIn*:  <http://www.linkedin.com/profile/view?id=79847968>

 Pense antes de imprimir este e-mail.



2012/8/8 João Olavo Baião de Vasconcelos <address@hidden>

> **
>
>
> 2012/8/7 Raphael R. O. <address@hidden>
>
> > **
> > O unico padrao que tenho nos pacote é o final... no exemplo que mando, o
> > padrao seria "frapi.tar"
> >
> > So que quando rodo o comando, parece que ele tenta buscar dentro do
> > arquivo, e nao no nome do arquivo...
> >
> file="$1"
> > sed -r 's,(.*_)(frapi\.tar),\npack=\2,' $file
> >
> Sim, está buscando dentro do arquivo. Na verdade, vc deveria fazer:
>
>
> sed -r 's,(.*_)(frapi\.tar),\npack=\2,' <<< $file
> ou
> echo $file | sed -r 's,(.*_)(frapi\.tar),\npack=\2,'
>
> E vc não precisaria ainda pegar dois blocos da expressão. Não precisa do
> (.*_), somente de .*_ e do segundo bloco de (). Aí é só usar o \1 na
> substituição.
>
> Mas ainda não entendi o que vc quer. Vc está testando se o nome de um
> arquivo termina com a string "_frapi.tar"? Ou seja, "qqcoisa_frapi.tar"
> bate, mas "qqcoisafrapi.tar" não?
>
> Mas aí se o nome do arquivo bater nessa condição, vc muda o nome para
>
 "[ENTER]pack=frapi.tar"?? Não entendi esse enter (\n)!
>
> Vou chutar que vc só quer mesmo testar se o nome do arquivo termina com
> "_frapi.tar". Se sim, entrar na condição do case correspondente.
>
> Se for isso, não precisa nem de sed. Faça assim:
>
> case $file in
> *_frapi.tar) [comandos] ;;
> *) exit 1 ;;
> esac
>
> Aí é só adicionar as outras condições.
>
> Falous!!
> --
> João Olavo Baião de Vasconcelos
> Analista de Sistemas - Infraestrutura
> joaoolavo.wordpress.com
>
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

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