[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
|
----------------------------
- Re: [shell-script] minha página nova de shell,
lista-1 <=