Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I have a large directory containing numerous files of similar kind. I have to send few random files for auditing. These files should not be from the top or bottom (eg. not in head or tail). This is sub process which I am struggling.

I want to get any number of files. It may be 10 or 2 or 3, but should not be in any order.

For example from this list of files:

10 1121231243 12 3124234ewdf 31243345 xaa 112 1121231243214 3 3124234ewdffd 3124334532 xab 1121 112123124321442334 3124 31243 3124334532324 xac 112123 1121ewszf 3124234 312433 file1

I would like to get a random subset like in this instance:

1121 112123124321442334 3124 1121ewszf
share|improve this question
    
Why can't you use head or tail? Is this a homework assignment? –  slhck Jan 31 at 15:18
1  
I'm working in a company and I have encountered with a issue like this where It is a big directory, where some files in the middle, are to be sent for auditing. It's bigger issue and i got struck in this sub-process. –  temp Jan 31 at 15:24
2  
It'd be better if you described the real issue instead of your attempted solution. Not only is this a contrived question, but you'd also end up with possibly useless answers. Can you edit your question and tell us more about the situation? –  slhck Jan 31 at 15:27
add comment

2 Answers

up vote 6 down vote accepted

Use random sort (-R or --random-sort) and then head or tail:

ls | sort -R | head -10

share|improve this answer
add comment

You can use sort -R to sort the list randomly, and then use the $RANDOM variable with head to get a random number of results:

ls | sort -R | head -n $(( $RANDOM % 10 + 1 ))

You will get 10 results or less (never zero)

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.