CRIAR DIRETORIOS ALEATORIOS COM ARQUIVOS [RESOLVIDO]

1. CRIAR DIRETORIOS ALEATORIOS COM ARQUIVOS [RESOLVIDO]

Kauê Murakami
murakamiKaue

(usa Linux Mint)

Enviado em 05/07/2018 - 19:45h

Faça um script em shellscript para criar um diretorio chamado “aleatorios” e, dentro deste diretorio, crie dez arquivos contendo
cinco valores aleatórios dentro separados por quebra de linha (“\n”). Nomeie cada arquivo com valores de 0 a 9, por exemplo,
(0.txt, 1.txt, 2.txt,…,9.txt).
...
Sei que tenho que que usar o mkdir e o touch, mas a sintaxe no for i in ... me complicou, alguem pode me ajudar?


  


2. MELHOR RESPOSTA

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 05/07/2018 - 23:47h

murakamiKaue escreveu:

Faça um script em shellscript para criar um diretorio chamado “aleatórios” e, dentro deste diretorio, crie dez arquivos contendo
cinco valores aleatórios dentro separados por quebra de linha (“\n”). Nomeie cada arquivo com valores de 0 a 9, por exemplo,
(0.txt, 1.txt, 2.txt,…,9.txt).
...
Sei que tenho que que usar o mkdir e o touch, mas a sintaxe no for i in ... me complicou, alguem pode me ajudar?


Boa noite Kaue, segue:
#!/bin/bash
dir="aleatorio"
mkdir "$dir"
for ((i=0;i<10;i++));do #aqui é o laço "for", ele conta de 0 a 9, para cada "número" , a linha abaixo . .
echo "$(cat /dev/urandom|tr -dc 'A-Za-z0-9'|fold -b50|head -n5)" >> ${dir}/$i.txt # cria cinco linhas com 50 caracteres aleatórios, e manda p/ o arquivo.
done

OBS.: Poderia ter usado um outro "for" para criar as linhas..... Mas optei pela solução acima.

É isso, se foi útil, marque como resolvido e escolha a "MELHOR RESPOSTA".
Att.:
Marcelo Oliver




3. Re: CRIAR DIRETORIOS ALEATORIOS COM ARQUIVOS [RESOLVIDO]

Kauê Murakami
murakamiKaue

(usa Linux Mint)

Enviado em 06/07/2018 - 11:18h

msoliver escreveu:

murakamiKaue escreveu:

Faça um script em shellscript para criar um diretorio chamado “aleatórios” e, dentro deste diretorio, crie dez arquivos contendo
cinco valores aleatórios dentro separados por quebra de linha (“\n”). Nomeie cada arquivo com valores de 0 a 9, por exemplo,
(0.txt, 1.txt, 2.txt,…,9.txt).
...
Sei que tenho que que usar o mkdir e o touch, mas a sintaxe no for i in ... me complicou, alguem pode me ajudar?


Boa noite Kaue, segue:
#!/bin/bash
dir="aleatorio"
mkdir "$dir"
for ((i=0;i<10;i++));do #aqui é o laço "for", ele conta de 0 a 9, para cada "número" , a linha abaixo . .
echo "$(cat /dev/urandom|tr -dc 'A-Za-z0-9'|fold -b50|head -n5)" >> ${dir}/$i.txt # cria cinco linhas com 50 caracteres aleatórios, e manda p/ o arquivo.
done

OBS.: Poderia ter usado um outro "for" para criar as linhas..... Mas optei pela solução acima.

É isso, se foi útil, marque como resolvido e escolha a "MELHOR RESPOSTA".
Att.:
Marcelo Oliver



Valeu brother. (Y)
Marcada já.



4. Re: CRIAR DIRETORIOS ALEATORIOS COM ARQUIVOS [RESOLVIDO]

Diego Mendes Rodrigues
diegomrodrigues

(usa Ubuntu)

Enviado em 06/07/2018 - 11:31h

Opa!

A solução do msoliver é muito boa!

Vou colocar uma solução um pouco mais didática, em mais passos, para você entender melhor a utilização do for.

Nesse script, estou criando o diretório aleatorio, e depois, os 10 arquivos de texto.
Observe que os arquivos estão vazios.

#!/bin/bash

mkdir aleatorio
for ((i=0;i<10;i++));
do
touch aleatorio/$i.txt
done


Agora, nesse outro, estou colocando as 5 linhas com dados aleatórios em cada um dos arquivos.

#!/bin/bash

mkdir aleatorio
for ((i=0;i<10;i++));
do
touch aleatorio/$i.txt
echo "$(cat /dev/urandom | tr -dc 'A-Za-z0-9' | fold -b5 | head -n5)" >> aleatorio/$i.txt
done


Na verdade, você não precisa criar os arquivos com o touch, pode deixar o script dessa forma:

#!/bin/bash

mkdir aleatorio
for ((i=0;i<10;i++));
do
echo "$(cat /dev/urandom | tr -dc 'A-Za-z0-9' | fold -b5 | head -n5)" >> aleatorio/$i.txt
done


Abraço,
Diego M. Rodrigues






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts