terça-feira, maio 02, 2006

DICA - Criando vários arquivos...

Pessoal, essa dica vai para aqueles que necessitam, seja lá o porque, criarem vários arquivos de uma só vez. Eu postei a mesma dica no Viva o Linux e no Fórum GDH. Contudo, alguns amigos da comunidade livre postaram outras maneiras de se executar essa dica. Então aqui vai:
Eu escrevi...
Pessoal, aqui vai uma dica que demorei para descobrir como executar. É o seguinte: Volta e meia, preciso criar vários arquivos de uma só vez. Última vez, estava criando uma rotina para fazer o download do FC5 automático e em dado momento do script resolvi criar vários arquivos de uma só vez. Aí surgiu a questão... Como fazer isso?! "Dar" vários 'touch'?! Não... tentar criar de uma só vez usando o 'vi' ou qualquer outro editor?! Também não! Simples! Vou mostrar duas maneiras de efetuar o processo. A primeira, mais "fácil", porém trabalhosa, consiste em criar um .txt qualquer com o nome de todos os arquivos que você deseja criar:
1) crie o arquivo no 'vi' com seguinte conteúdo:
arquivo-1.txt
arquivo-2.txt
arquivo-3.txt
arquivo-4.txt
arquivo-5.txt
arquivo-6.txt
arquivo-7.txt
arquivo-8.txt
2) define a seguinte variável: VAR=`cat arquivo`
3) "dê" um 'touch' na variável $VAR: touch $VAR
Obs.: há outras possibilidades! Vai depender da sua criatividade! Por ex.: touch `cat arquivo`. Estimule a criatividade! Experimente fazer rotinas com laços usando 'for' ou o 'while'

Peczenyj escreveu...

Tem muitas formas de fazer isso
cat arquivo xargs touch
touch arquivo-{1,2,3,4,5,6,7,8}.txt
for((i=1;i<=8;i++)) ; do touch arquivo-${i}.txt ; done
Basta inventar uma...

Profeta_Livre escreveu...

#!/bin/bash
#
# bem simples vc da a quantidade de arquivo que quer
# criar, e ele atribui o nome do arquivo (
# este nome vc tambe fornece) com uma numeracao
# como vc mesmo propos
#
# as definicoe scomecam com 0,1,2 etc...
#
echo -e "Digite o nome da seguencia de arquivos: \n"
read arquivo
echo -e "Quantos arquivos devem ser criados? \n"
read quantidade
echo -e "Criando os arquivos...\n";
variavel="0"
while [ $variavel -lt $quantidade ]; do
arq=$arquivo$variavel
touch $arq.txt
echo -e "$arq.txt criado \n"
let variavel=variavel+1
done

Peczenyj escreveu...

$ set - `cat txt` && while [ "${1}" ] ; do touch ${1} ; shift ; done

Meu amigo JQueiroz escreveu...

for n in 1 2 3 4 5 6 7 8 9 10; do touch arquivo-$n.txt ; done

Um comentário:

Anônimo disse...

Really amazing! Useful information. All the best.
»