Getting Files from list and jumbles them


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Getting Files from list and jumbles them
# 1  
Old 05-24-2016
Error Getting Files from list and jumbles them

Hi,

I was wondering if you could help as I'm sure its possible. I can remember something was possible using sed/awk a while back.

I have a list in a file such as sample_list.txt which contains the following:

Code:
example1, answer1
example2, answer2
example3, answer3
example4, answer4
example5, answer5
example6, answer6
example7, answer7
example8, answer8
example9, answer9
example10, answer10
e.t.c

What I want to do is to create a script and when it runs:
  1. It lists either the first or second field and places it on the left hand side
  2. It then places its corresponding example/answer on the opposite side
  3. It repeats this for 10 of the words and then shuffles the words

example:

Code:
example8	answer1
example10	answer6
example1	answer8
answer3	example5
example7	answer9
example9	answer7
answer2	answer9
example6	example3
example4	example2
answer5	answer4

Hope this helps.

Thanks

Last edited by rbatte1; 05-27-2016 at 02:50 AM.. Reason: Don added CODE tags, Robin converted text numbered list to formatted numbered list
# 2  
Old 05-24-2016
I do not understand the practical use for something that takes a random number of examples (let us call this random number of examples example_count) where example_count is an integer such that 1 <= example_count <= 20 and then takes 20 - example_count answers to produce 10 lines of output some of which have two examples, some of which have two answers, some of which have an example followed by an answer, and the rest have an answer followed by an example.

I could imagine needing to extract 10 examples and the 10 answers corresponding to those examples and creating 10 lines with the examples on the left and the answers on the right (but with the answers in random order) or creating 10 lines with the answers on the left and the examples on the right (but with the examples in random order), but neither of these match the output you say you want.

Is this a homework assignment? Homework and coursework questions can only be posted in the Homework & Coursework forum with a completely filled out homework template that is available in the special homework rules.

If this is homework, please review the guidelines for posting homework and repost.

If it is not homework, please explain how this project will be used.
This User Gave Thanks to Don Cragun For This Post:
# 3  
Old 05-25-2016
Hi,

Thank you for getting back to me.

I can see why you think it's homework :-)

I would like you to know that it is not part of homework but is a process carried out by the local school teachers on a daily basis. To make life easier for them I suggested that it could be done using sone form of shell script and that is where I thought you guys came in.

Hopefully this clears and misunderstanding on my part.

Thanjs
# 4  
Old 05-25-2016
Good you pointed that out.

Still I'm missing the point. What be
- "its corresponding example/answer"?
- "shuffles the words" and its effect?
I can't even infer that from the samples given. Why does example8 correspond to answer1?
# 5  
Old 05-25-2016
okay.

On a weekly basis each class is given synonyms to do.
These are generated from a synonyms file which contains the following

Code:
abandon, leave
abbreviate, shorten
abode, dwelling
abrupt, sudden
...
..
.

so the left hand side you would have the words
Code:
abandon
abbreviate
abode
abrupt

on the right hand side you will have
Code:
sudden
dwelling
leave
shorten

The order does not matter.

So as pupils get the sheet they have to draw lines to match the synonyms.
Hope that helps.
# 6  
Old 05-25-2016
Unfortunately, you didn't really answer my questions. Based on some assumptions, I came up with

Code:
awk '
        {EX[NR]  = $1
         EX[-NR] = $2
        }
END     {for (i=1; i<=NR; i++)  {IX = 0
                                 IY = 0
                                 do     IX = int(rand()*20)-10
                                 while  (!(IX in EX))

                                 SGN = (IX < 0)?1:-1

                                 do     IY = SGN*(int(rand()*10)+1)
                                 while  (!(IY in EX) || IY == SGN*IX)

                                 printf "%-15s %-15s\n", EX[IX], EX[IY]
                                 delete EX[IX]
                                 delete EX[IY]
                                }
        }
' FS=, file
example7        answer10       
answer2         example6       
example2        answer5        
answer3         example10      
example9        answer1        
answer6         example4       
example8        answer9        
example5        answer8        
example3        answer4        
answer7         example1

Does it come close to what you imagined?
# 7  
Old 05-25-2016
This one would make you independent of the input row count; use it on files of arbitrary length...
Code:
awk '
        {EX[NR]  = $1
         EX[-NR] = $2
        }
END     {for (i=1; i<=NR; i++)  {IX = 0
                                 IY = 0
                                 do     IX = int(rand()*2*NR) - NR
                                 while  (!(IX in EX))

                                 SGN = (IX < 0)?1:-1

                                 do     IY = SGN*(int(rand()*NR)+1)
                                 while  (!(IY in EX) || IY == SGN*IX)

                                 printf "%15s      %-15s\n", EX[IX], EX[IY]
                                 delete EX[IX]
                                 delete EX[IY]
                                }
        }
' FS=, file

This User Gave Thanks to RudiC For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Comparing two files and list the difference with common first line content of both files

I have two file as given below which shows the ACL permissions of each file. I need to compare the source file with target file and list down the difference as specified below in required output. Can someone help me on this ? Source File ************* # file: /local/test_1 # owner: own #... (4 Replies)
Discussion started by: sarathy_a35
4 Replies

2. Shell Programming and Scripting

List all the files in the present path and Folders and subfolders files also

Hi, I need a script/command to list out all the files in current path and also the files in folder and subfolders. Ex: My files are like below $ ls -lrt total 8 -rw-r--r-- 1 abc users 419 May 25 10:27 abcd.xml drwxr-xr-x 3 abc users 4096 May 25 10:28 TEST $ Under TEST, there are... (2 Replies)
Discussion started by: divya bandipotu
2 Replies

3. Shell Programming and Scripting

Copy list of files from a keyword list to another directory

Hello, I have a folder with a massive amount of files, and I want to copy out a specific subset of the files to a new directory. I would like to use a text file with the filenames listed, but can't get it to work. The thing I'm hung up on is that the folder names in the path can and do have... (5 Replies)
Discussion started by: twjolson
5 Replies

4. UNIX for Dummies Questions & Answers

How to list files with no extension together with *.prog files?

Hi, I know that to list files with no extension, we can use.. ls -1 | grep -v "\." And to list .prog files, we can use.. ls -1 *.prog or ls -1 | grep '.prog$' (4 Replies)
Discussion started by: adshocker
4 Replies

5. Shell Programming and Scripting

Take a list if strings from a file and search them in a list of files and report them

I have a file 1.txt with the below contents. -----cat 1.txt----- 1234 5678 1256 1234 1247 ------------------- I have 3 more files in a folder -----ls -lrt------- A1.txt A2.txt A3.txt ------------------- The contents of those three files are similar format with different data values... (8 Replies)
Discussion started by: realspirituals
8 Replies

6. Shell Programming and Scripting

List files only when a certain number of files match

Hi, I have many files named CCR20110720011001.CTRD CCR20110720011501.CTRD CCR20110720012001.CTRD CCR20110720012501.CTRD CCR20110720021001.CTRD ... (9 Replies)
Discussion started by: shadyfright
9 Replies

7. Shell Programming and Scripting

find list of files from a list and copy to a directory

I will be very grateful if someone can help me with bash shell script that does the following: I have a list of filenames: A01_155716 A05_155780 A07_155812 A09_155844 A11_155876 that are kept in different sub directories within my current directory. I want to find these files and copy... (3 Replies)
Discussion started by: manishabh
3 Replies

8. UNIX for Dummies Questions & Answers

Find files and display only directory list containing those files

I have a directory (and many sub dirs beneath) on AIX system, containing thousands of file. I'm looking to get a list of all directory containing "*.pdf" file. I know basic syntax of find command, but it gives me list of all pdf files, which numbers in thousands. All I need to know is, which... (4 Replies)
Discussion started by: r7p
4 Replies

9. Shell Programming and Scripting

I need a script to find socials in files and output a list of those files

I am trying to find socail security numbers in files in (and under) a specific directory and output a list of the files where they are found... the format would be with no dashes just 9 numeric characters in a row. I have tried this: find /DirToLookIn -exec grep '\{9\}' /dev/null {} \; >>... (1 Reply)
Discussion started by: NewSolarisAdmin
1 Replies

10. UNIX for Dummies Questions & Answers

counting a list of string in a list of txt files

Hi there! I have 150 txt files named chunk1, chunk2, ........., chunk150. I have a second file called string.txt with more than 1000 unique strings, house, dog, cat ... I want to know which command I should use to count how many times each string appears in the 150 files. I have tried... (4 Replies)
Discussion started by: Pep Puigvert
4 Replies
Login or Register to Ask a Question