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

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

Re: [shell-script] Cortar nome de arquivo.


From: Julio C. Neves
Subject: Re: [shell-script] Cortar nome de arquivo.
Date: Thu, 19 Apr 2007 14:50:47 -0300

Fala Wagner,
isto não é expressão regular. A substituição de parâmetros (parameter
substitution), chamada por alguns de Expansão de Parâmetros (Parameter
Expansion) usa os caracteres coringas. Em
http://twiki.softwarelivre.org/bin/view/TWikiBar/TWikiBarPapo009 tem um
texto em português sobre o assunto que julgo bastante completo.

Qto ao uso de <<<, que chama-se here string ( e que todos confundem com here
document) vc poderá entender legal, se ler o texto (tb em português) em
https://twiki.softwarelivre.org/bin/view/TWikiBar/TWikiBarBirinaite.

Uma obs para as pessoas que costumam ler o Papo de Botequim (
www.julioneves.com): brevemente o site aparecerá remodelado em outro
endereço (www.bash.org.br). O domínio www.julioneves.com atualmente está
redirecionando para http://twiki.softwarelivre.org/bin/view/TWikiBar/WebHome,
porém, com a entrada em funcionamento da nova URL de cara nova, passará a
redirecionar para www.bash.org.

Portanto peço que os amigos se habituem a acessar o site pelo
www.julioneves.com (sem .br), e avisem aos amigos.

Obrigado,
Julio
:wq


Em 19/04/07, Wagner Brasileiro Cardoso <address@hidden>
escreveu:
>
>
> -----Mensagem original-----
> De: address@hidden <shell-script%40yahoogrupos.com.br>
> [mailto:address@hidden<shell-script%40yahoogrupos.com.br>]Em
> nome de Wagner Brasileiro Cardoso
> Enviada em: terça-feira, 10 de abril de 2007 18:18
> Para: address@hidden <shell-script%40yahoogrupos.com.br>
> Assunto: RES: [shell-script] Cortar nome de arquivo.
>
> Ok, muito obrigado Júlio, minha dúvida era se, como vc diz, dava para
> fazer
> em uma ou duas linhas com sed e redirecionamento, mas pelo visto não. Se
> puder dar uma explicação da linha: "ArqNov=${Arq:0:Corte}.$Ext" se
> trata-se
> de variáveis de ambiente eu desconheço, poderia me passar algum lugar onde
> as referencie, assim como as ERs para testar cadeias numéricas? Obrigado.
>
> -----Mensagem original-----
> De: address@hidden <shell-script%40yahoogrupos.com.br>
> [mailto:address@hidden<shell-script%40yahoogrupos.com.br>]Em
> nome de Julio C. Neves
> Enviada em: terça-feira, 10 de abril de 2007 14:45
> Para: address@hidden <shell-script%40yahoogrupos.com.br>
> Assunto: Re: [shell-script] Cortar nome de arquivo.
>
> Aê Wagner,
> for Arq in *
> do
> [ ${#Arq} -le 25 ] && continue
> Ext=${Arq#*.}[CPD da SBAC] Grande júlio, encasquetei com algumas coisas
> que não entendi nesse exemplo, realmente as expansões de comando não
> forammeu forte no curso. Nessa linha em que comcei a digitar não ntendi
> exatamente sta expansão: Ext=${Arq#*.}, o que eu entendi é, corta a menor
> ocorrência da cadeia à esquerda da expressão que é o nome do arquiv,
> sobrando só a extensão!?
> Corte=$((24-${#Ext}))
> ArqNov=${Arq:0:Corte}.$Ext[CPD da SBAC] Já nessa eu não entendi a posição
> "o" seria "0" !? Obrigado e um abraço!!! Wagner Brasileiro.
>
> [ -f $ArqNov ] && {
> echo $Arq já foi cortado antes
> continue
> }
> mv $Arq $ArqNov
> done
>
> OBS:
> 1 - Não foi testado
> 2 - Se o arquivo chamar-se wagner.tar.gz a extensão será considerada como
> tar.gz. Se quiser que seja só gz fazer Ext=${Arq##*.}
> 3 - Apesar de vc ter falado em extensões com 3 caracteres, neste caso fiz
> com extensões de qq tamanho para ficar genérico.
> 4 - Se todos os arquivo tiverem mais de 25 char e todas as extensões
> tiverem
> sempre 3 caracteres, isso pode ser bastante simplificado.
>
> Bom proveito,
> Julio
> :wq
>
> Em 10/04/07, Wagner Brasileiro Cardoso
> <address@hidden<wagnerbrasileirocardoso%40yahoo.com.br>
> >
> escreveu:
> >
> > Boa tarde,
> >
> > Estou em dúvida de qual método devo usar para reduzir uma lista de
> > arquivos
> > a somente 25 caracteres por nome de arquivo, minha principal dúvida é
> como
> > fazer para limitar a renomeação aos primeiros 21 caracteres acrescidos
> de
> > "."e extensão totalizando 25 caracteres que é o que o dispositivo me
> > permite
> > ler.
> > Tenho a impressão que estou fazendo uma pergunta ridícula, mas no
> momento
> > não me vem nada na cabeça.
> > Pensei em criar uma lista dos nomes e ir processando linha a linha, mas
> me
> > falta a forma de limitar ao tamanho da forma anterior que eu falei.
> >
> > Obrigado,
> >
> > Wagner Brasileiro
> >
> >
> >
>
> --
> Abraços,
> Julio
> http://www.julioneves.com - Um livro sobre Bash completo e on-line
> :wq
>
> [As partes desta mensagem que não continham texto foram removidas]
>
> [As partes desta mensagem que não continham texto foram removidas]
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>



-- 
Abraços,
Julio
http://www.julioneves.com - Um livro sobre Bash completo e on-line
:wq


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



reply via email to

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