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

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

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


From: Wagner Brasileiro Cardoso
Subject: RES: [shell-script] Cortar nome de arquivo.
Date: Thu, 19 Apr 2007 12:45:06 -0300

Última forma Júlio, vi que foi confusão de fonte aoler o que escrevi esta
font não está distingüindo a diferença de "o" (letra ó) para "0" número
zero.
  -----Mensagem original-----
  De: Wagner Brasileiro Cardoso
[mailto:address@hidden]
  Enviada em: quinta-feira, 19 de abril de 2007 12:36
  Para: address@hidden
  Assunto: RES: [shell-script] Cortar nome de arquivo.



    -----Mensagem original-----
    De: address@hidden
[mailto:address@hidden]Em nome de Wagner Brasileiro Cardoso
    Enviada em: terça-feira, 10 de abril de 2007 18:18
    Para: address@hidden
    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
    [mailto:address@hidden]Em nome de Julio C. Neves
    Enviada em: terça-feira, 10 de abril de 2007 14:45
    Para: address@hidden
    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>
    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]



reply via email to

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