Sistema de arquivos Linux
Eu tenho um diretório com 1500 pastas. Estou procurando usar um documento Excel que tenha 1.500 nomes de pastas em uma coluna e um ID exclusivo na próxima. Estou procurando criar um script para que o script renomeie as pastas para o novo ID exclusivo. Alguém pode me ajudar parece muito fácil, embora eu não saiba escrever scripts. Alguém pode fornecer um link para um script on-line (não consegui encontrar um).
Look at volume A for folder Var#1 (from excel)
if present on Volume A then mv Var#1 to Var#2 (from excel)
loop and grab next line of excel doc
Responder1
Ok, aqui está:
para eu em $(cat test.csv)
fazer
dir1=$(echo $i|sed 's/,.*//')
dir2=$(echo $i|sed 's/.*,//')
se [ -d $dir1]
então
se [-d $dir2]
então
echo $dir2 presente, pulando a mudança de $dir1 para $dir2
outro
mv $dir1 $dir2
fi
fi
feito
Responder2
Então, sou usuário de Linux, Unix e Mac e escrevo scripts Perl e Bash. Se você possui um power shell ou cygwin, pode fazer o seguinte, o Windows também pode ter isso, mas não prenda a respiração:
Sem fazer tudo, acho que você deveria ser capaz de pegar isso e modificar da maneira que quiser...
- Salve seus dados em um arquivo csv (somefile.csv)
- Em uma concha bash
bash> para temp_line em
cat somefile.csv
fazer
echo mv $temp_line |sed 's/,/ /'
pronto > algum arquivo.sh
Não execute a linha a seguir até ter certeza de que fará o que você deseja!
bash>. ./algum arquivo.sh
Deveria ser isso ... Observe, este é um hack rápido, pode ser escrito com mais verificação de erros e outras coisas, e isso estava na minha cabeça :) Outro problema que você pode encontrar são os espaços no arquivo/ nomes de diretórios, basta adicionar aspas. Se precisar verificar se o diretório está presente, você pode adicionar uma instrução if como a seguinte:
bash>if [ -d 'nome_diretório']; então... ;fi
Isso deve ser pepitas suficientes sem escrevê-lo. Posso me inspirar mais tarde e escrever isso em uma postagem de acompanhamento.
Responder3
Isso énão é uma resposta, mas estou inserindo-o como um porque os comentários não permitem uma formatação decente ou tanto texto.
Obviamente, os nomes das pastas existentes são únicos (assumindo que estejam todos na mesma superpasta ou sejam apresentados como nomes de caminho completos - conforme apontado por @nerdwaller). E os IDs exclusivos na segunda coluna são, por definição, exclusivos. As duas colunas são únicas (não sobrepostas)? Considere os seguintes dados:
Nome antigo Novo ID exclusivo Para_ser,_ou_não_ser, 1 essa é a questão. 2 The_quick_brown_fox 3 salta_sobre_o_cachorro_preguiçoso. 4 ⋮ ⋮ Once_upon_a_midnight_dreary, 40 enquanto_eu_ponderei, 41 fraco_e_cansado, 42 ⋮ ⋮ A_resposta_para_os 56 questão_final_da_vida, 57 o_universo,_e_tudo_é 58 42 59 E assim por diante... 60
Se/quando você tentar renomear weak_and_weary,
para 42
, você colidirá com a 42
pasta existente. Provavelmente, a melhor maneira de resolver isso é verificar os nomes das pastas antigas em busca de nomes que correspondam ao padrão dos IDs exclusivos e tratá-los manualmente.