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

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

Re: [shell-script] minha página nova de shell


From: lista-1
Subject: Re: [shell-script] minha página nova de shell
Date: Fri, 11 Jul 2003 15:42:32 -0300

Caros,

Não consegui alterar essa REGEXP de maneira que se os caracteres forem
maiúsculos, para que se mantenham da mesma forma... apenas mude os
caracteres estranhos...

Podem dar um help ???



zzarrumanome(){ zzzz -z $1 zzarrumanome && return
[ "$1" ] || { echo 'uso: zzarrumanome arquivo(s)'; return; }
local A A1 A2 D; for A in "$@"; do [ -f "$A" ] || continue;
A1="${A##*/}"; D="${A%/*}/"; A2=`echo $A1 | sed "s/[\"']//g"'
y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/;s/^-/_/
y/ÀàÁáÂâÃãÄÅäåÈèÉéÊêËëÌìÍíÎîÏïÇçÑñ/aaaaaaaaaaaaeeeeeeeeiiiiiiiiccnn/
y/ÒòÓóÔôÕõÖöÙùÚúÛûÜüߢУØø§µÝý¥¹²³/oooooooooouuuuuuuubcdloosuyyy123/
s/[^a-z0-9._-]/_/g;s/__*/_/g;s/_\([.-]\)/\1/g;s/\([.-]\)_/\1/g'`
[ "$A1" != "$A2" -a ! -f "$A2" ] && mv -v -- "$A" "${D%$A/}$A2";done
}


by http://aurelio.net/zz

paulo henrique
-----------------------
echo 47875708458009083351029739972407050455790102158921762609658359562P | dc
----- Original Message ----- 
From: "Thobias Salazar Trevisan" <address@hidden>
To: "lista-1" <address@hidden>
Cc: "Aurelio Marinho Jargas" <address@hidden>
Sent: Thursday, July 10, 2003 9:22 AM
Subject: Re: [shell-script] minha página nova de shell



Olá paulo henrique,

On Thu, 10 Jul 2003, lista-1 wrote:

> Muito boa sua página, eu que estou iniciando nisso gostei.

legal. shell é massa!! :)

> no arrumanome, não consegui entender direito como funciona pois estava
> quebrando a cabeça pra fazer algo parecido...
> O único problema é que ele nao checa por exemplo se já existe um
> arquivo com o nome a ser renomeado.
> Ex:
>
> sem nocao.txt -> sem_nocao.txt
> Sem Noção.txt -> sem_nocao.txt
>
> As origens sao nomes de arquivos diferentes, porém o destino será o
> mesmo...

é verdade. é bug mesmo. valeu pelo aviso.
vamos corrigir para a próxima versão.

> Da pra ajudar a resolver isso ?

claro. olhe:

>
# --------------------------------------------------------------------------
--
> # renomeia arquivos do diretório atual, arrumando nomes estranhos.
> # obs.: ele deixa tudo em minúsculas, retira acentuação e troca espaços em
> #       branco, símbolos e pontuação pelo sublinhado _
> # uso: zzarrumanome arquivo(s)
> # ex.: zzarrumanome *
> #      zzarrumanome "DOCUMENTO MALÃO!.DOC"       # fica
documento_malao.doc
> #      zzarrumanome "RAMONES - I Don't Care"     # fica
ramones-i_don_t_care
>
# --------------------------------------------------------------------------
--
> zzarrumanome(){ zzzz -z $1 zzarrumanome && return
> [ "$1" ] || { echo 'uso: zzarrumanome arquivo(s)'; return; }
> local A A1 A2 D; for A in "$@"; do [ -f "$A" ] || continue;
> A1="${A##*/}"; D="${A%/*}/"; A2=`echo $A1 | sed "s/[\"']//g"'
> y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/;s/^-/_/
> y/ÀàÁáÂâÃãÄÅäåÈèÉéÊêËëÌìÍíÎîÏïÇçÑñ/aaaaaaaaaaaaeeeeeeeeiiiiiiiiccnn/
> y/ÒòÓóÔôÕõÖöÙùÚúÛûÜüߢУØø§µÝý¥¹²³/oooooooooouuuuuuuubcdloosuyyy123/
> s/[^a-z0-9._-]/_/g;s/__*/_/g;s/_\([.-]\)/\1/g;s/\([.-]\)_/\1/g'`
> [ "$A1" != "$A2" ] && mv -v -- "$A" "${D%$A/}$A2"; done
> }

Troque a última linha para:
[ "$A1" != "$A2" -a ! -f "$A2" ] && mv -v -- "$A" "${D%$A/}$A2";done

ou seja, adicionamos um teste que, para ele renomear, o
arquivo destino não pode existir ( ! -f "$2" ).
o -a é um E lógico.

falow

thobias
-------
echo 9446046325380026818553633794429812592304650P | dc
-------
http://www.lcp.coppe.ufrj.br/~thobias

____________________________
|
| Against - HTML Mail
| Against - MS ATTACHMENTS
|
----------------------------



reply via email to

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