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: João Olavo Baião de Vasconcelos
Subject: Re: [shell-script] testar nome de arquivo
Date: Wed, 8 Aug 2012 07:50:43 -0300

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]



reply via email to

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