Aê Helton,
a linha é grande mas é um one-liner. Se o servidor de e-mail quebrá-la,
emende-a... :)
$ ls [0-9][0-9][0-9][0-9]* | cut -c-4 | uniq | xargs -i bash -c "[ -d {} ]
|| mkdir {}; mv {}* {}"
Ao final vai dar um erro, mas já era esperado, vão ser os diretórios 0108 e
0109 tentando mover-se para dentro deles mesmos.
Abraços,
Julio
Cursos de Shell e Zenity em 2 fins de semana?
- SE turma de Shell/Zenity em 26/07 - [email protected]
- SP turma de Shell em 14/08 - www.4Linux.com.br
- Turmas fechadas em outras cidades ligue (21)8112-9988.
Em 9 de julho de 2010 03:50, Helton Moraes <[email protected]> escreveu:
>
>
> Caros colegas, estou com um problema bobo mas não sei como resolver
> rapidamente.
>
> Tenho mais de mil arquivos assim:
>
> 0108as3g_10.txt
> 0108as4g_10.txt
> 0108as6g_10.txt
> 0108as6g_11.txt
> 0109as1g_10.txt
> 0109as1g_11.txt
> 0109as2g_10.txt
> 0109as2g_11.txt
> 0109as2g_12.txt
> 0109as3g_10.txt
>
> onde os quatro primeiros dígitos são o mês e o ano.
>
> O que eu preciso fazer (meio logo) é:
>
> 1) Criar uma estrutura de diretório tipo /aamm (ano na frente do mês)
> 2) Mover os arquivos para a pasta correspondente.
>
> Ficaria assim:
> /0801
> 0108as3g_10.txt
> 0108as4g_10.txt
> 0108as6g_10.txt
> 0108as6g_11.txt
> /0901
> 0109as1g_10.txt
> 0109as1g_11.txt
> 0109as2g_10.txt
> 0109as2g_11.txt
> 0109as2g_12.txt
> 0109as3g_10.txt
>
> Pensei em usar um
>
> for file in $(find -type f)
> do
> <sed, criar variáveis, if isso aquilo, etc, etc, mkdir, etc>
>
> mas tudo que fiz deu errado, inclusive o sed "cuspir" um monte de
> caracteres
> ilegíveis ao processar os resultados do find...
>
> Peço desculpa se parece bobo demais, mas sabe como é, não tenho usado muito
> Shell (tão me obrigando a aprender Java...) e a gente acaba enferrujando.
>
> Obrigado
>
> Helton
> <http://www.google.com/search?q=com>
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>
>
[As partes desta mensagem que não continham texto foram removidas]
------------------------------------
---------------------------------------------------------------------
Esta lista não admite a abordagem de outras liguagens de programação, como
perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio
aviso.
---------------------------------------------------------------------
Sair da lista: [email protected]
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
Servidor Newsgroup da lista: news.gmane.org
Grupo: gmane.org.user-groups.programming.shell.brazil
Links do Yahoo! Grupos
<*> Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/shell-script/
<*> Para sair deste grupo, envie um e-mail para:
[email protected]
<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html