[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Como criar diretórios a partir de uma lista num arqui
From: |
Fernando Luizao |
Subject: |
Re: [shell-script] Como criar diretórios a partir de uma lista num arquivo? |
Date: |
Tue, 6 Jul 2010 05:04:48 -0700 (PDT) |
Algumas idéias:
Criando os diretórios de A a Z:
mkdir {A..Z}
Extraindo os nomes dos artistas:
sed 's/\(.*\)-.*/\1/' arquivo | sort | uniq | xargs -I'{}' mkdir "{}"
O sed vai extrair tudo até o "-", então ordenamos os nomes dos artistas pro
uniq retirar os repetidos. Jogamos a saída para o xargs com a opção -I para que
possamos proteger o nome (que possivelmente tem espaços ou outros caracteres
especiais) com aspas ao criar o diretório.
Isso já dá um começo, provavelmente vc vai querer normalizar os nomes de
diretório para minúscula, substituir espaços, etc, mas aí é com vc =)
Abraço
--- Em ter, 6/7/10, Aguinaldo Dantas <address@hidden> escreveu:
De: Aguinaldo Dantas <address@hidden>
Assunto: [shell-script] Como criar diretórios a partir de uma lista num arquivo?
Para: address@hidden
Data: Terça-feira, 6 de Julho de 2010, 1:35
Caros,
Tem como pegar uma listagem num arquivo e transformar esta listagem em novos
diretórios/pastas?
Explicando:
Mantenho meus mp3 no diretório Música dividido em subdiretórios nomeados com
a primeira letra do nome do artista ou banda, A, B, C, etc. Dentro destes
subdiretórios existe ou deveria existir um outro subdiretório com o nome
completo de cada banda ou artista. Pensando nisto criei o seguinte arquivo
shell que gera uma lista dos diretórios que correspondem aos arquivos que
tem a estrutura "artista - música.mp3" de forma invariável já que utilizo o
PicardTagger do site MusicBrainz:
#!/bin/bash
ls > a.txt
cat a.txt | sed '/\.mp3/!d' > b.txt
cat b.txt | sed 's/ - /\n/g' > c.txt
cat c.txt | sed '/\.mp3/d' | uniq > d.txt
O arquivo d.txt tem uma listagem do nome dos artistas ou bandas, então como
faço para criar os diretórios? Posso colocar um "mkdir " na frente de cada
linha e mandar "executar o txt" ou tem como processar cada linha por vez?
Agraceço qualquer ajuda, mesmo um RTFM, caso me digam qual é. Sou novato e
tapado em shell.
Abraços
--
Abraços,
Aguinaldo
Linux User #449566
http://paginadoaguinaldo.blogspot.com/
http://ninguemedeferro.blogspot.com/
[As partes desta mensagem que não continham texto foram removidas]
[As partes desta mensagem que não continham texto foram removidas]