|
From: | Dito Ramos |
Subject: | RE: [shell-script] Imprimir sequência de números randomicamente, SEM REPETIÇÃO |
Date: | Wed, 03 May 2017 14:45:16 -0300 |
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 tudopaste -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' | bashOn 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[]'sItamar
[Prev in Thread] | Current Thread | [Next in Thread] |