Linux - General This Linux forum is for general Linux questions and discussion.
If it is Linux Related and doesn't seem to fit in any other forum then this is the place. |
Notices |
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
Are you new to LinuxQuestions.org? Visit the following links:
Site Howto |
Site FAQ |
Sitemap |
Register Now
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
|
 |
10-19-2013, 09:29 PM
|
#1
|
Member
Registered: Oct 2008
Posts: 344
Rep:
|
need to create a humongous data base
I need to create a humongous data base to test some code.
How do I get the output of
Code:
head -$LINE $1 | tail -1
into a variable to be used later?
The current output is
Quote:
Milissa Greener
Temple, TX
7/1/2013,,
Rebecca Loeby
La Grange, TX
4/28/2013,,
Carrie Elkins
Bastrop , TX
8/23/2013,,
|
and I would like to be
Quote:
8/23/2013,Carrie Elkins,Bastrop, TX
|
Code:
#!/bin/bash
function randomline() {
RAND=`cat /proc/sys/kernel/random/uuid | cut -c1-4 | od -d | head -1 | cut -d' ' -f2`
LINES=`cat "$1" | wc -l`
LINE=`expr $RAND % $LINES + 1`
head -$LINE $1 | tail -1
}
i=0
loop_count=7
while [ "$i" -lt "$loop_count" ]; do
gigday=$(($RANDOM%30));
gigmonth=$(($RANDOM%12));
gigyear=2013;
randomline "artists";
randomline "towns";
echo "$gigmonth"/"$gigday"/"$gigyear","$gigartist","$gigtown";
i=$(($i + 1));
done
The content of 'artists' and 'towns' take this format.
artosts"
Quote:
Amy Speace
emily elbert
Raina rose
Rebecca Loeby
Carrie Elkins
Danny Schmidt
Kacie Jones
Milissa Greener
Susan Gibson
Jana Pochop
Marcia Ball
Marian Call
Sara Hickman
Ruby Jane
|
towns:
Quote:
Dallas, TX
Ft Worth, TX
Waco, TX
Temple, TX
Austin, TX
San Antonio, TX
La Grange, TX
Bastrop , TX
Austin, TX
Houston, TX
Galveston, TX
Pt Auther, TX
Odessa, TX
Conroe, TX
The Woodlands, TX
Huntsville, TX
|
Help would be appreciated.
Dave
|
|
|
10-20-2013, 05:14 AM
|
#2
|
LQ Veteran
Registered: Sep 2003
Posts: 10,532
|
Change:
head -$LINE $1 | tail -1
to
retValue=$(head -$LINE $1 | tail -1)
Add the following bold lines:
Code:
randomline "artists";
gigartist="$retValue"
randomline "towns";
gigtown="$retValue"
About your randomline function: This can be done simpler using the shuf or rl command.
Using shuf:
Code:
function randomline() {
retValue=$(shuf -n 1 $1)
}
Using rl:
Code:
function randomline() {
retValue=$(rl -c 1 $1)
}
|
|
1 members found this post helpful.
|
10-20-2013, 04:44 PM
|
#3
|
Member
Registered: Oct 2008
Posts: 344
Original Poster
Rep:
|
Thank you for the reply and solution I got close several times. I tried with an ' and a " bu n cneve a (,
Everything works as planed. Now to try your other recommendations. I did not know that shuf amd rl existed. Maybe I should spend some time and go back and reread my book, Linux in a Nutshell
|
|
|
10-21-2013, 01:40 AM
|
#4
|
LQ Veteran
Registered: Sep 2003
Posts: 10,532
|
You're welcome.
BTW: These 2 are the same, the second one is being preferred:
Code:
`head -$LINE $1 | tail -1`
$(head -$LINE $1 | tail -1)
Also have a look at this thread here at LQ: notation difference: var=`command` and var=$(command)
About shuf and rl: The shuf command is part of coreutils and should be present on most, if not all modern Linux distro's. rl might not be present out-of-the-box.
|
|
|
10-21-2013, 11:03 AM
|
#5
|
Member
Registered: Oct 2008
Posts: 344
Original Poster
Rep:
|
Quote:
Originally Posted by druuna
About shuf and rl: The shuf command is part of coreutils and should be present on most, if not all modern Linux distro's. rl might not be present out-of-the-box.
|
This was my case. I used shuf, rl was a 'command not found'.
Thanks for the link.
D
|
|
|
All times are GMT -5. The time now is 02:50 AM.
|
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.
|
Latest Threads
LQ News
|
|