Sponsored Content
Top Forums Shell Programming and Scripting Random File Selection and Moving Post 302544590 by stak1993 on Thursday 4th of August 2011 09:45:52 AM
Old 08-04-2011
Random File Selection and Moving

OK, I am stumpped. I have this shell Script that I want to randomly select a file with the extention of .sct. Then using a portion of its file name select the six related .mot files. Then move them all to another folder. I also need a user input form for the number of .SCT files to randomly select and move.
So I have a file structure like this:
Code:
123-12345-00.sct
123-12345-00.mot
123-12345-01.mot
123-12345-02.mot
123-12345-03.mot
123-12345-04.mot
123-12345-05.mot
123-12346-00.sct
123-12346-00.mot
123-12346-01.mot
123-12346-02.mot
123-12346-03.mot
123-12346-04.mot
123-12346-05.mot

And so on.

Need to randomly select the file .sct and move it and its related .mot files to another directory. Hopefully I have explained this good enough.
Thanks for the help. I could do this in VB but this UNIX thing has me stumpped. Right now we do it manualy through thousands of files.

So here is the script I want to use. It isn't working I can't get past the
Code:
 if [ ! -d "$dir" ]; then echo "$0: $dir: no such directory"; exit; fi;


Code:
  #! /usr/bin/env bash
    dir="$1"
    count="$2"
    [ "$dir" ] && [ $count -gt 0 ] && {
           if [ ! -d "$dir" ]; then echo "$0: $dir: no such directory"; exit; fi;
           RANDOM=$$$(date +%s)                    #init random seed
           for (( c=0; c < $count; c++ )); do
                files=(*.sct)                       #creates array of sct files
                  ct=${#files[@]}                     #computes array length
                if [ $ct -eq 0 ]; then break; fi
                sct=${files[$[($RANDOM % $ct)]]}    #pick random file
                prefix=$(echo $sct | sed 's:\(.*-\).*:\1:')
                mot_files=($(ls $prefix*.mot 2> /dev/null))
                mv $sct $dir
            if [ ${#mot_files[@]} -gt 0 ]; then 
                mv ${mot_files[@]} $dir  #
            fi
            done
        } || echo "usage: $0 <dir> <num of files>"

Thanks for any help you can provide.

Scott

Last edited by pludi; 08-04-2011 at 10:35 AM..
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Getting a random file

Hello, I am very new to shell scripting. This problem seems quite easy so it should be quite easy (I hope ^^) I want to get a random file from a directory. this file will be in one subdirectory, and it will contain spaces. code I have got so far: N=find ./*/*.jpg | wc -l ((N=RANDOM%N)) ... (6 Replies)
Discussion started by: davidY
6 Replies

2. Programming

[C++] File I/O (Reading from a Random-Access File)

INFO: The program should enter a circle radius and Id for that circle to a file, then it should search for that id and print the radius for that circle. PROBLEM: This program compiles but it's not searching properly. Circle.h #ifndef CIRCLE_H #define CIRCLE_H #include <iostream>... (0 Replies)
Discussion started by: VersEtreOuNe
0 Replies

3. Shell Programming and Scripting

Random lines selection form a file.

>cat data.dat 0001 Robbert 0002 Nick 0003 Mark ....... 1000 Jarek (3 Replies)
Discussion started by: McLan
3 Replies

4. Shell Programming and Scripting

how to change the current file processing to some other random file in awk ?

Hello, say suppose i am processing an file emp.dat the field of which are deptno empno empname etc now say suppose i want to change the file to emp.lst then how can i do it? Here i what i attempted but in vain BEGIN{ system("sort emp.dat > emp.lst") FILENAME="emp.lst" } { print... (2 Replies)
Discussion started by: salman4u
2 Replies

5. Shell Programming and Scripting

Pick random file from ls command.

Lets say I want to pick a random file when I do an "ls" command. I don't have set number of files in each directory. ls | head -1 This gives me the first one in each directory, is there a way to do the same but pick a random one. (3 Replies)
Discussion started by: elbombillo
3 Replies

6. Ubuntu

expect script for random password and random commands

Hi I am new to expect. Please if any one can help on my issue its really appreciable. here is my issue: I want expect script for random passwords and random commands generation. please can anyone help me? Many Thanks in advance (0 Replies)
Discussion started by: vanid
0 Replies

7. UNIX for Dummies Questions & Answers

Random selection of subset of sample from file

Hello Could you please help me to find a code that can randomly select 1224 lines from a file of 12240 and make tn output with 1224 line each. my input is txt file with 12240 lines like : 13474 999003507 0 0 2 -9 13475 999003508 0 0 2 -9 13476 999003509 0 0 1 -9 13477 999003510 0 0 1 -9 ... (7 Replies)
Discussion started by: biopsy
7 Replies

8. Shell Programming and Scripting

Need to generate a file with random data. /dev/[u]random doesn't exist.

Need to use dd to generate a large file from a sample file of random data. This is because I don't have /dev/urandom. I create a named pipe then: dd if=mynamed.fifo do=myfile.fifo bs=1024 count=1024 but when I cat a file to the fifo that's 1024 random bytes: cat randomfile.txt >... (7 Replies)
Discussion started by: Devyn
7 Replies

9. Shell Programming and Scripting

Conditional File Selection From a Directory

I have a directory with files that was saved all along the day at different times. Every day I have to run a program that will select 50 files for each hour which has the maximum score. Sample file name: a_b_c_d_e_f where a,b,c,d,e,f are double values Score calculation: (a + b + c + d + e... (4 Replies)
Discussion started by: shekhar2010us
4 Replies

10. UNIX for Advanced & Expert Users

Support for Unicode in GTK2 and GTK3 file selection box?

I'm on Tiny Core Linux Pure64 10.1. My locale is en_US.UTF-8 and I generally have no trouble with Unicode characters with one exception: When I try to use Unicode characters in GTK applications' file selection box, I get "Invalid file name": http://files.dantas.airpost.net/public/save_file.jpg ... (11 Replies)
Discussion started by: DevuanFan
11 Replies
orber_acl(3erl) 					     Erlang Module Definition						   orber_acl(3erl)

NAME
orber_acl - Orber ACL operations DESCRIPTION
This module contains functions intended for analyzing Access Control List (ACL) filters. The filters uses a extended format of Classless Inter Domain Routing (CIDR). For example, "123.123.123.10" limits the connection to that particular host, while "123.123.123.10/17" allows connections to or from any host equal to the 17 most significant bits. Orber also allow the user to specify a certain port or port range, for example, "123.123.123.10/17#4001" and "123.123.123.10/17#4001/5001" respectively. IPv4 or none compressed IPv6 strings are accepted. EXPORTS
match(IP, Direction) -> boolean() match(IP, Direction, GetInfo) -> Reply Types IP = tuple() | [integer()] Direction = tcp_in | ssl_in | tcp_out | ssl_out GetInfo = boolean() Reply = boolean() | {boolean(), [Interface], PortInfo} Interface = string() PortInfo = integer() | {integer(), integer()} If GetInfo is not supplied or set to false, this operation returns a boolean which tells if the IPv4 or IPv6 address would pass the ACL filter, defined by the iiop_acl configuration parameter, or not. When GetInfo is set to true, a tuple which, besides the boolean that tells if access was granted, also include the defined interfaces and port(s). This operation requires that Orber is running and can be used on a live node to determine if Orber has been properly configured. verify(IP, Filter, Family) -> Reply Types IP = string() Filter = string() Family = inet | inet6 Reply = true | {false, From, To} | {error, string()} From = string() To = string() This operation returns true if the IPv4 or IPv6 address would pass the supplied ACL. If that is not the case, a tuple containing the accepted range is returned. This operation should only be used for test purposes. range(Filter, Family) -> Reply Types Filter = string() Family = inet | inet6 Reply = {ok, From, To} | {error, string()} From = string() To = string() Returns the range of accepted IP addresses based on the supplied filter. This operation should only be used for test purposes. Ericsson AB orber 3.6.20 orber_acl(3erl)
All times are GMT -4. The time now is 07:29 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy