shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Imprimir sequência de números randomicamente, SEM REP


From: William Alves dos Santos
Subject: Re: [shell-script] Imprimir sequência de números randomicamente, SEM REPETIÇÃO
Date: Wed, 03 May 2017 14:55:57 +0000

Sua lógica esta sucinta, faria assim:

seq 1 500 | while read i; do (( $i % 2 == 0 )) && echo $i ; done | shuf

Vi que outras pessoas responderam também com o shuf

Espero ter ajudado

Att



On Wed, May 3, 2017 11:13 AM, Alfredo Casanova address@hidden [shell-script] address@hidden wrote:
 

Ah, no exemplo que enviei esqueci de colocar o step no echo. No seu caso, mude o echo {1..399} para echo {2..500..2}

On Wed, May 3, 2017 at 11:08 AM Alfredo Casanova <address@hidden> wrote:
Tem essa:

paste -d" " <(ls *.mp3 |sed -E 's/^|$/\"/g') <(paste -d- <(echo {1..399}|tr ' ' '\n'|shuf)  <(ls *.mp3)|sed -E 's/^|$/\"/g') | sed 's/^/mv /g' 
isso vai produzir o seguinte resultado: 
mv "Chico Buarque - Construção.mp3" "61-Chico Buarque - Construção.mp3"
mv "John Lennon - Imagine.mp3" "39-John Lennon - Imagine.mp3"
mv "Vinícius de Moraes - Garota de Ipanema.mp3" "241-Vinícius de Moraes - Garota de Ipanema.mp3"
mv "Chico Buarque - Construção.mp3" "308-Chico Buarque - Construção.mp3"
mv "John Lennon - Imagine.mp3" "1-John Lennon - Imagine.mp3"

e aí é só adicionar um | bash no final e ele vai mover tudo

paste -d" " <(ls *.mp3 |sed -E 's/^|$/\"/g') <(paste -d- <(echo {1..399}|tr ' ' '\n'|shuf)  <(ls *.mp3)|sed -E 's/^|$/\"/g') | sed 's/^/mv /g' | bash


On Wed, May 3, 2017 at 8:21 AM address@hidden [shell-script] <address@hidden> wrote:
 

Caro Dito


Que tal essa solução:

paste <(seq -f "%03g" 2 2 500 | shuf) <(ls meu_diretorio) | awk -F '\t' '{system("mv \042" $2 "\042 \042" $1 "-" $2 "\042")}'


Não sei no seu caso mas o "seq" comigo não preciso usar o " tr ' ' '\n' ", pois cada número já sai em uma linha distinta.
Talvez esse recurso só seja necessário se a construção fosse "echo {002..500..2}"

Obs.: O "\042" dentro do awk emula a aspas dupla ( " ) para a construção do comando.

Espero que ajude em algo

[]'s
Itamar



Abraços

William Alves dos Santos
Cel.: (11) 99616 8602 - VIVO
Cel.: (11) 96835 8172 - TIM

reply via email to

[Prev in Thread] Current Thread [Next in Thread]