Use aleatório sort
( -R
ou --random-sort
) e, em seguida, head
ou tail
:
ls | sort -R | head -10
Eu tenho um grande diretório contendo vários arquivos de tipo similar. Eu tenho que enviar alguns arquivos aleatórios para auditoria. Esses arquivos não devem ser da parte superior ou inferior (por exemplo, não em head
ou tail
). Este é o processo sub que estou lutando.
Eu quero obter qualquer número de arquivos. Pode ser 10 ou 2 ou 3, mas não deve estar em nenhuma ordem.
Por exemplo, desta lista de arquivos:
10 1121231243 12 3124234ewdf 31243345 xaa 112 1121231243214 3 3124234ewdffd 3124334532 xab 1121 112123124321442334 3124 31243 3124334532324 xac 112123 1121ewszf 3124234 312433 file1
Gostaria de obter um subconjunto aleatório, como neste caso:
1121 112123124321442334 3124 1121ewszf
Você pode usar sort -R
para classificar a lista aleatoriamente e usar a variável $RANDOM
com head
para obter um número aleatório de resultados:
ls | sort -R | head -n $(( $RANDOM % 10 + 1 ))
Você receberá 10 resultados ou menos (nunca zero)
Tags linux unix shell-script