Read random line from a text file


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Read random line from a text file
# 1  
Old 09-24-2009
Read random line from a text file

I have a text file with hundreds of lines, i wish to run a script and reads a random line to pass it to another command line such as:
Code:
for line in `cat file |grep random line`; do echo $line |mail my@example.com ; done

thank you
# 2  
Old 09-24-2009
Sounds like homework/classroom stuff. This kind of questions are not allowed in here.

The UNIX and Linux Forums - Forum Rules

Read (6) for how to post homework stuff.
# 3  
Old 09-24-2009
hehe not classroom check my IP i'm working at office Smilie

---------- Post updated 09-25-09 at 01:43 AM ---------- Previous update was 09-24-09 at 06:17 PM ----------

google answered me, i don't know why people start not to help each others anymore on forums, it seems forums gonna eventually die like IRC channels when it was so popular in 90s Smilie

Code:
#!/bin/sh

LINES=`wc -l $1 | awk '{ print ($1 + 1) }'`
RANDSEED=`date '+%S%M%I'`
LINE=`cat $1 | awk -v COUNT=$LINES -v SEED=$RANDSEED 'BEGIN { srand(SEED); \
i=int(rand()*COUNT) } FNR==i { print $0 }'`
echo $LINE

save it into rand.sh for example then chmod + rand.sh and then ./rand.sh text_file_goes_here and it will do the magic



"Share The Knowledge"
-Unknown
# 4  
Old 09-25-2009
That there is no helping here in the forum is not true and can easily be checked by other threads in here (if you meant this one). Just check - there are other threads but your's that usually get plenty of answers. So really no reason to be insulted.
Also you can't totally deny that the request to read a random line from a text file does sound like homework.
If I were sure it was homework I had closed it already. Mods are only humans too and humans can be wrong. So get over it Smilie And no, I don't start checking people's IPs to get a clue where they work.
# 5  
Old 09-28-2009
sorry if i sounded offensive Smilie but forums are places to share knowledge

good luck Smilie
# 6  
Old 09-28-2009
Interesting post about RANDSEED. Not seen that before.
# 7  
Old 09-28-2009
Quote:
Originally Posted by Bashar
hehe not classroom check my IP i'm working at office Smilie

---------- Post updated 09-25-09 at 01:43 AM ---------- Previous update was 09-24-09 at 06:17 PM ----------

google answered me, i don't know why people start not to help each others anymore on forums, it seems forums gonna eventually die like IRC channels when it was so popular in 90s Smilie

Code:
#!/bin/sh

LINES=`wc -l $1 | awk '{ print ($1 + 1) }'`


There's no need for awk:

Code:
LINES=$(( $(wc -l < "$1") + 1 ))

Quote:
Code:
RANDSEED=`date '+%S%M%I'`
LINE=`cat $1 | awk -v COUNT=$LINES -v SEED=$RANDSEED 'BEGIN { srand(SEED); \
i=int(rand()*COUNT) } FNR==i { print $0 }'`
echo $LINE

save it into rand.sh for example then chmod + rand.sh and then ./rand.sh text_file_goes_here and it will do the magic

Code:
awk 'BEGIN { srand() }
{ l[NR]=$0 }
END { print l[int(rand() * NR + 1)] }' "$file"

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Shell script UNIX to read text file line by line

i have a text file as belows, it includes 2 columns, 1st is the column name, 2nd is the file_name data_file.txt column_name file_name col1 file1 col2 file2 col3 file1 col4 file1 col5 file2 now, i would like to... (4 Replies)
Discussion started by: tester111
4 Replies

2. Shell Programming and Scripting

How to read a text file line by line and insert into a database table?

I have a test file that I want to read and insert only certain lines into the the table based on a filter. 1. Rread the log file 12 Hours back Getdate() -12 Hours 2. Extract the following information on for lines that say "DUMP is complete" A. Date B. Database Name C.... (2 Replies)
Discussion started by: JolietJake
2 Replies

3. Programming

Read text from file and print each character in separate line

performing this code to read from file and print each character in separate line works well with ASCII encoded text void preprocess_file (FILE *fp) { int cc; for (;;) { cc = getc (fp); if (cc == EOF) break; printf ("%c\n", cc); } } int main(int... (1 Reply)
Discussion started by: khaled79
1 Replies

4. Shell Programming and Scripting

How to read the first work of each line from text file?

Hi ppl. I want to read the first word of each line of a text file to a variable in a bash script. Can anyone help pls, thanks. (6 Replies)
Discussion started by: cannot
6 Replies

5. Shell Programming and Scripting

how read specific line in a file and write it in a new text file?

I have list of files in a directory 'dir'. Each file is of type HTML. I need to read each file and get the string which starts with 'http' and write them in a new text file. How can i do this shell scripting? file1.html <head> <url>http://www.google.com</url> </head> file2.html <head>... (6 Replies)
Discussion started by: vel4ever
6 Replies

6. Shell Programming and Scripting

Shell script to read a text file line by line & process it...

Hi , I am trying to write an shell, which reads a text file (from a location) having a list of numbers of strictly 5 digits only ex: 33144 Now my script will check : 1) that each entry is only 5 digits & numeric only, no alphabets, & its not empty. 2)then it executes a shell script called... (8 Replies)
Discussion started by: new_to_shell
8 Replies

7. Shell Programming and Scripting

Read text file line by line

Hi everyone, I am writing a BASH shell script that I will use to process data files. I have a text file that contains the names of the files to be processed, for example: cat filenames.txt file1 file2 file3 file4 file5 What I would like to do is set up a FOR loop within my script... (2 Replies)
Discussion started by: msb65
2 Replies

8. Shell Programming and Scripting

Script does not read the last line of text file

Hello, I have got a script that reads a text file, and have got three problems that I an struggling with. 1. The script does not read the last line in the text file 2. within the second 'elif' within the script I included a 'break' - the script runs successfully (except for the first... (2 Replies)
Discussion started by: jermaine4ever
2 Replies

9. Shell Programming and Scripting

Read from text file misses first line

Hi! I need to read in the first line from a text file (which will only ever have one line in it), so I tried this.... while read line do echo $line done < $file But this wasn't returning anything. So I tired a different file, which had multiple lines of text in it, and it returned... (2 Replies)
Discussion started by: davewg
2 Replies

10. UNIX for Dummies Questions & Answers

How to read and write a random row from a file?

Lets say I have a file abc.txt and it has about 35 million rows. I would like to take a sample of 100 random rows from that file for my testing purpose and write it to a file say test.txt. How do I do this operation? Thanks, Sashank (9 Replies)
Discussion started by: sashankkrk
9 Replies
Login or Register to Ask a Question