Command Line to Get the Stock Quote via Yahoo

curl -s 'http://download.finance.yahoo.com/d/quotes.csv?s=csco&f=l1'
Retrieve the current stock price from Yahoo Finance. The output is simply the latest price (which could be delayed). If you want to look up stock for a different company, replace csco with your symbol.
Sample Output
19.58

11
By: haivu
2009-05-04 08:13:59

What Others Think

how do you change it to find the stock price of companys on the London Stock Exchange.
felix001 · 501 weeks and 5 days ago
@felix001: I don't know. I googled for a while, but could not find anything useful.
haivu · 501 weeks and 5 days ago
curl -s 'http://download.finance.yahoo.com/d/quotes.csv?s=JPR.L&f=l1' Just append a ".L" to the stock symbol. Price is given in quid. (And I'm American!)
hank · 501 weeks and 4 days ago
Great! This is what I need! Thanks a lot!
unixmonkey3715 · 500 weeks and 3 days ago
how can i ad the time and date to the stock quote? I want output that looks like: 20091117 10:59 - price stock and then append that to a file? I already use a command that makes the timestamp with whatever i type after it: echo `date +'%Y%m%d %H:%M - '` SOMETHING >> ~/pt/notes.txt" appends SOMETHING to a file. I just want SOMETHING to be the stock price. Any ideas about how i could do that?
kjowens · 473 weeks and 3 days ago
@kjowens: I don't know how. Sorry I can't help you there.
haivu · 473 weeks and 2 days ago
I solved my problem w/ a script like this: #!/bin/sh ffflx=$(curl -s 'http://download.finance.yahoo.com/d/quotes.csv?s=ffflx&f=l1787') td=`date +'%Y%m%d %H:%M - '` echo $td $ffflx > /Users/.../pt/stock-record.txt which appends this to the file: 20091125 16:46 - 8.35,"FFFLX","FFFLX","FFFLX" where ffflx = stock ticker name td = is the date formatted how i want it
kjowens · 472 weeks and 2 days ago
Use perl from the command line, since most have perl installed on their machine this is a easier alternative instead of running bash. Plus easier to manipulate. Just add your stock ticker to the array. #!/usr/bin/perl -w @STOCKS = ('GOOG','AAPL','MSFT','CSCO','FORD'); foreach $stocker (@STOCKS){ system("curl -s ' } After the &f= you can limit it to like above which is just to use l1. If you want to just run from the command line chmod +x nameoffile, then ./nameoffile. If you want to run it from anywhere move the file to the /usr/local/sbin directory and chmod +x filename and chown user:user then from the command line just type in nameoffile. Make sure to make the filename different from system files. Also add it to your crontab job. So you can see the stocks every minute. Hope this will help everyone who have tried coming up with a simple command line option to what was written above.
rouninsamurai · 445 weeks and 4 days ago
For UK it appears they used the same parameters but pulls from different url. http://uk.old.finance.yahoo.com/d/quotes.csv?s=BP.L&f=sl1d1t1c1ohgv http://uk.old.finance.yahoo.com/d/quotes.csv?s=RR.L&f=sl1d1t1c1ohgv
rouninsamurai · 445 weeks and 4 days ago
@kjowens, I used this: echo $(date +'%Y%m%d %H:%M') $(curl -s 'http://download.finance.yahoo.com/d/quotes.csv?s=spy&f=l1')
travisbgreen · 302 weeks and 1 day ago
As a do-it-yourselfer without much perl knowhow, others like me might benefit from the trial and error I waded throuugh to get rouninsaurai's perl script to work. I balanced the bracket and apostrophes at system("curl -s ' with ' ") at the endof the line and inserted the variable $stocker (without spaces) in place of the stock ticker in the bash script. Probably obvious to most, but might help some.
hilltownboy · 263 weeks and 5 days ago

What do you think?

Any thoughts on this command? Does it work on your machine? Can you do the same thing with only 14 characters?

You must be signed in to comment.

Considering A New Car?

You should consider a Tesla. Get 6 Months Free Supercharging.

Free Supercharging

What's this?

commandlinefu.com is the place to record those command-line gems that you return to again and again. That way others can gain from your CLI wisdom and you from theirs too. All commands can be commented on, discussed and voted up or down.

Share Your Commands



Stay in the loop…

Follow the Tweets.

Every new command is wrapped in a tweet and posted to Twitter. Following the stream is a great way of staying abreast of the latest commands. For the more discerning, there are Twitter accounts for commands that get a minimum of 3 and 10 votes - that way only the great commands get tweeted.

» http://twitter.com/commandlinefu
» http://twitter.com/commandlinefu3
» http://twitter.com/commandlinefu10

Subscribe to the feeds.

Use your favourite RSS aggregator to stay in touch with the latest commands. There are feeds mirroring the 3 Twitter streams as well as for virtually every other subset (users, tags, functions,…):

Subscribe to the feed for: