<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>PoundBangWhack.com &#187; bash</title>
	<atom:link href="http://www.poundbangwhack.com/tag/bash/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.poundbangwhack.com</link>
	<description>A web development/programming blog providing info, tips, and tricks on programming languages, scripting, Linux, MySQL and more</description>
	<lastBuildDate>Sat, 17 Jul 2010 05:17:56 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>How to reset the bash IFS variable</title>
		<link>http://www.poundbangwhack.com/2010/07/09/how-to-reset-the-bash-ifs-variable/</link>
		<comments>http://www.poundbangwhack.com/2010/07/09/how-to-reset-the-bash-ifs-variable/#comments</comments>
		<pubDate>Fri, 09 Jul 2010 23:53:11 +0000</pubDate>
		<dc:creator>Mark Stoecker</dc:creator>
				<category><![CDATA[How To]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[SSH/Command Line]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[SSH]]></category>
		<category><![CDATA[Tips]]></category>

		<guid isPermaLink="false">http://www.poundbangwhack.com/?p=1381</guid>
		<description><![CDATA[Here&#8217;s a quick tip for everyone.  I was working on a one-liner today at work that involved parsing through a file with some data in it.  The data had spaces in it which can cause problems with the default $IFS variable (Internal File Separator). nixCraft has an excellent tutorial on working with the [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a quick tip for everyone.  I was working on a one-liner today at work that involved parsing through a file with some data in it.  The data had spaces in it which can cause problems with the default $IFS variable (Internal File Separator). <a href="http://www.cyberciti.biz/tips/handling-filenames-with-spaces-in-bash.html">nixCraft has an excellent tutorial on working with the $IFS variable.</a><br />
<span id="more-1381"></span><br />
As I was test iterations of my one-liner, I was setting resetting the $IFS variable.  While I was smart enough to save it first:</p>
<pre name="code" class="bash">
 OLDIFS=$IFS
</pre>
<p>I forgot to set it back at the end of my one-liner, which caused some problems for me.  I tried checking another server to see what the default is, but if you just run the command</p>
<pre name="code" class="bash">
# echo $IFS
#
</pre>
<p>you see that you just get a blank line.  The way to show all non-printing characters is to pipe the output into <span class="code">cat</span> with a couple of switches.</p>
<pre name="code" class="bash">
# echo "$IFS" | cat -vTE
 ^I$
$
#
</pre>
<p>The switches stand for the following:</p>
<dl>
<dt>-v, &#8211;show-nonprinting</dt>
<dd>use ^ and M- notation, except for LFD and TAB</dd>
<dt>-T, &#8211;show-tabs</dt>
<dd>display TAB characters as ^I</dd>
<dt>-E, &#8211;show-ends</dt>
<dd>display $ at end of each line</dt>
</dl>
<p>**Note -t can be substituted for -vT; -e can be substituted for -vE</p>
<p>So our output above, indicates that <strong>the default setting for the $IFS variable is: a space, followed by a tab, followed by a new line character.</strong></p>
<p>Once I had this information, it was very easy to then <strong>reset the $IFS variable back to it&#8217;s default</strong>.  While trying to set this, I had problems with the tab (for some reason it wasn&#8217;t registering) so I just wrote it as &#8216;^I&#8217;.  Once set, run the </p>
<pre name="code" class="bash">
echo "$IFS" | cat -vTE
</pre>
<p>command again to verify and make sure it matches the output above and you&#8217;ll be all set.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.poundbangwhack.com/2010/07/09/how-to-reset-the-bash-ifs-variable/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What do three &#8220;less than&#8221; (</title>
		<link>http://www.poundbangwhack.com/2010/07/02/what-is-heredoc/</link>
		<comments>http://www.poundbangwhack.com/2010/07/02/what-is-heredoc/#comments</comments>
		<pubDate>Fri, 02 Jul 2010 20:47:24 +0000</pubDate>
		<dc:creator>Mark Stoecker</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[SSH/Command Line]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[Heredoc]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Scripting]]></category>

		<guid isPermaLink="false">http://www.poundbangwhack.com/?p=1349</guid>
		<description><![CDATA[To teach myself PHP, I started out reading <a href="http://www.amazon.com/gp/product/0764543644?ie=UTF8&#038;tag=httpwwwdese09-20&#038;linkCode=as2&#038;camp=1789&#038;creative=390957&#038;creativeASIN=0764543644">Beginning PHP4 (Programmer to Programmer)</a><img src="http://www.assoc-amazon.com/e/ir?t=httpwwwdese09-20&#038;l=as2&#038;o=1&#038;a=0764543644" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />.  After that, I begin studying others' code.  One of the first things I learned from other peoples' code was <a href="http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc">heredoc syntax.</a>  It took me a while to fully understand what it was and how to use it, but now I use it all the time and it is a fantastic tool.]]></description>
			<content:encoded><![CDATA[<p>I am a true believer in that the best ways to learn how to do anything is by studying work of those who have done the same thing previously.  When programming, that means looking at others&#8217; code and learning from what they do.  However, <strong>don&#8217;t assume that everything someone else does is correct!</strong>  What this means is that not only should you learn what <strong>to</strong> do from other peoples&#8217; code, but you should also learn what <strong>not</strong> to do.<br />
<span id="more-1349"></span><br />
To teach myself PHP, I started out reading <a href="http://www.amazon.com/gp/product/0764543644?ie=UTF8&#038;tag=httpwwwdese09-20&#038;linkCode=as2&#038;camp=1789&#038;creative=390957&#038;creativeASIN=0764543644">Beginning PHP4 (Programmer to Programmer)</a><img src="http://www.assoc-amazon.com/e/ir?t=httpwwwdese09-20&#038;l=as2&#038;o=1&#038;a=0764543644" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />.  After that, I begin studying others&#8217; code.  One of the first things I learned from other peoples&#8217; code was <a href="http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc">heredoc syntax.</a>  It took me a while to fully understand what it was and how to use it, but now I use it all the time and it is a fantastic tool.</p>
<h3>What is heredoc?</h3>
<p>Heredoc syntax is a way to delimit strings in PHP (and other languages) with <strong>3 &#8220;less than&#8221; symbols: &lt;&lt;&lt;</strong>.  </p>
<blockquote><p>
After this operator, an identifier is provided, then a newline. The string itself follows, and then the same identifier again to close the quotation.</p>
<p>The closing identifier <strong>must </strong> begin in the first column of the line. Also, the identifier must follow the same naming rules as any other label in PHP: it must contain only alphanumeric characters and underscores, and must start with a non-digit character or underscore.<br />
<cite><a href="http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc">PHP: Strings &#8211; Manual</a></cite>
</p></blockquote>
<p>An example may help:</p>
<pre name="code" class="php">
&lt;?php
echo &lt;&lt;&lt;EOD
Example of string
spanning multiple lines
using heredoc syntax.
EOD;
?>
</pre>
<p>This will output:<br />
&#8220;Example of string<br />
spanning multiple lines<br />
using heredoc syntax&#8221;</p>
<p>Not very impressive.  However, where the handiness comes in is in the following:</p>
<blockquote><p>
Heredoc text behaves just like a double-quoted string, without the double quotes. This means that quotes in a heredoc do not need to be escaped. Variables are expanded, but the same care must be taken when expressing complex variables inside a heredoc as with strings.<br />
<cite><a href="http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc">PHP: Strings &#8211; Manual</a></cite>
</p></blockquote>
<p>This allows you to use variables and quotes in your heredocs without having to escape every single quote you want to use.  It makes it very useful for printing out extremely long strings of text.  </p>
<h3>Things to remember about using heredoc</h3>
<p>Heredocs are a great way to simplify your code and print out long strings.  Here is just a few things to keep in mind when using them:</p>
<ul>
<li>Heredocs start with &#8220;&lt;&lt;&lt;<em>IDENTIFIER</em> where <em>IDENTIFIER</em> must follow the same naming conventions of PHP variables.</li>
<li>The closing identifier <strong>must</strong> be the same as the opening identifier</li>
<li>The line with the closing identifier <strong>must contain no other characters</strong>, except possibly  a semicolon (;). That means especially that <strong>the identifier may not be indented</strong>, and <strong>there may not be any spaces or tabs before or after the semicolon</strong></li>
<li>Quotes and double quotes do not need to be escaped</li>
<li>Variables are expanded</li>
</ul>
<p>For more information, refer to the <a href="http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc">PHP: Strings Manual on php.net</a></p>
<h3>Bonus: Heredocs for bash scripting</h3>
<p>Heredocs for bash work pretty much the exact same way as they do for PHP but are delimited by <strong>2 &#8220;less than&#8221; symbols:&#8221; &lt;&lt;</strong> instead of 3.  Here is a handy way to output large fields of text into a file through a bash script:</p>
<pre name="code" class="php">
#!/bin/bash
cat &lt;&lt;OUTPUT > /etc/my.cnf
[mysqld]
socket=/tmp/mysql.sock
port=3306
user=mysql
password=supersecretpassword
log-bin=mysql-bin
server-id=1
OUTPUT
</pre>
<p>What about you? What new things have you learned from reading other peoples&#8217; code? Share with us and we&#8217;ll all learn something new.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.poundbangwhack.com/2010/07/02/what-is-heredoc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to append values to an array in bash</title>
		<link>http://www.poundbangwhack.com/2010/02/04/how-to-append-values-to-an-array-in-bash/</link>
		<comments>http://www.poundbangwhack.com/2010/02/04/how-to-append-values-to-an-array-in-bash/#comments</comments>
		<pubDate>Thu, 04 Feb 2010 20:14:08 +0000</pubDate>
		<dc:creator>Mark Stoecker</dc:creator>
				<category><![CDATA[How To]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[SSH/Command Line]]></category>
		<category><![CDATA[Shell Scripts]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[SSH]]></category>

		<guid isPermaLink="false">http://www.poundbangwhack.com/?p=1257</guid>
		<description><![CDATA[Last week I was working on a bash script for a project at work.  The script parsed through a log file with server load and disk usage statistics at regular intervals.  The script was calculating the average CPU idle time, disk utilization, and disk usage for servers.  After calculating the averages for [...]]]></description>
			<content:encoded><![CDATA[<p>Last week I was working on a bash script for a project at work.  The script parsed through a log file with server load and disk usage statistics at regular intervals.  The script was calculating the average CPU idle time, disk utilization, and disk usage for servers.  After calculating the averages for each of these three metrics, I then proceeded to loop through all the lines in the file and create an array of all the times when the CPU idle time was below average, or the disk utilization or usage was above average.<br />
<span id="more-1257"></span><br />
The code that I used was originally taken from the article <a href="http://fvue.nl/wiki/Bash:_Append_to_array_using_while-loop" target="_blank">Bash: Append to array using while-loop</a> by Freddy Vulto. The concept that Freddy used is essentially the same as what I was doing.  I was using a <span class="pre">for</span> loop to scan a file, and if certain values in the file met a condition, the date was added to an array which was printed at the end of the script execution.  The code to achieve this is as follows:</p>
<p><code>array=( ${array[@]-} $(echo "$variable") )</code></p>
<p>The code above reads as follows:</p>
<p><span class="pre">array=( &#8230;.. )</span> : Set your array variable named, appropriately enough: <em>array</em>.</p>
<p><span class="pre">${array[@]-}</span> : Read all variables from the array <em>array</em>.  The hyphen at the end prevents an &#8220;unbound variable&#8221; error when <span class="code">-u</span> or <span class="code">-o nounset</span> is set and <em>array</em> is an empty array.  This is useful for appending the first value to an empty array in the event that one of the aforementioned flags is set.</p>
<p><span class="pre">$(echo &#8220;$variable&#8221;)</span> : Add the variable <em>$variable</em> to the array through the use of command substitution <span class="code">$(&#8230;)</span> by reading the output of <span class="code">echo &#8220;$variable&#8221;</span> as the input value for the array.  The reason for command substitution is that if you try it without the <span class="code">$(&#8230;)</span>, bash will read <span class="code">echo</span> and <span class="code">&#8220;$variable&#8221;</span> as separate entries into the array instead of just the value of <em>$variable</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.poundbangwhack.com/2010/02/04/how-to-append-values-to-an-array-in-bash/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>bash Scripting Cheat Sheet</title>
		<link>http://www.poundbangwhack.com/cheat-sheets/bash-scripting/</link>
		<comments>http://www.poundbangwhack.com/cheat-sheets/bash-scripting/#comments</comments>
		<pubDate>Mon, 29 Jun 2009 05:58:10 +0000</pubDate>
		<dc:creator>Mark Stoecker</dc:creator>
				<category><![CDATA[Other]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[Cheat Sheet]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Scripting]]></category>

		<guid isPermaLink="false">http://www.poundbangwhack.com/?page_id=887</guid>
		<description><![CDATA[
If...then
if [ expression ]thencommandsfi

If..then...else
if [ expression ]thencommandselsecommandsfi

If..then...else If...else
if [ expression ]thencommandselif [ expression2 ]thencommandselsecommandsfi
Case select
case string1 instr1)commands;;str2)commands;;*)commands;;esac
For loop
for var1 in listdocommandsdone
While loop
while [ expression ]docommandsdone
Do Until loop
until [ expression ]docommandsdone

Function - call with fname
fname(){commands}
$0
Name of the shell script itself
$1
Value of first command line parameter (similarly $2, $3, etc)
$#
In a shell script, the number of command [...]]]></description>
			<content:encoded><![CDATA[<dl>
<dt>
If...then</dt>
<dd>if [ expression ]<br />then<br />commands<br />fi</dd>
<dt>
If..then...else</dt>
<dd>if [ expression ]<br />then<br />commands<br />else<br />commands<br />fi</dd>
<dt>
If..then...else If...else</dt>
<dd>if [ expression ]<br />then<br />commands<br />elif [ expression2 ]<br />then<br />commands<br />else<br />commands<br />fi</dd>
<dt>Case select</dt>
<dd>case string1 in<br />str1)<br />commands;;<br />str2)<br />commands;;<br />*)<br />commands;;<br />esac</dd>
<dt>For loop</dt>
<dd>for var1 in list<br />do<br />commands<br />done</dd>
<dt>While loop</dt>
<dd>while [ expression ]<br />do<br />commands<br />done</dd>
<dt>Do Until loop</dt>
<dd>until [ expression ]<br />do<br />commands<br />done</dd>
<dt>
Function - call with fname</dt>
<dd>fname(){<br />commands<br />}</dd>
<dt>$0</dt>
<dd>Name of the shell script itself</dd>
<dt>$1</dt>
<dd>Value of first command line parameter (similarly $2, $3, etc)</dd>
<dt>$#</dt>
<dd>In a shell script, the number of command line parameters.</dd>
<dt>$*</dt>
<dd>All of the command line parameters.</dd>
<dt><em>varname</em>=<em>value</em></dt>
<dd>Create a variable named <em>varname</em> with a value of <em>value</em></dd>
<dt></dt>
<dd></dd>
</dl>
<div class="cheat_sheet_link"><a href='http://www.poundbangwhack.com/wp-content/uploads/bash_scripting.pdf' onClick="javascript: pageTracker._trackPageview('/downloads/cheat-sheets/bash');">Download the bash Scripting Cheat Sheet</a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.poundbangwhack.com/cheat-sheets/bash-scripting/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Shell Scripts</title>
		<link>http://www.poundbangwhack.com/scripts/shell/</link>
		<comments>http://www.poundbangwhack.com/scripts/shell/#comments</comments>
		<pubDate>Fri, 19 Jun 2009 23:05:55 +0000</pubDate>
		<dc:creator>Mark Stoecker</dc:creator>
				<category><![CDATA[Other]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[Command-Line]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[SSH]]></category>

		<guid isPermaLink="false">http://www.poundbangwhack.com/?page_id=788</guid>
		<description><![CDATA[This page will house the Shell Scripts that I have developed. Shell scripts are run from a Linux Command-line or SSH interface.

Post to Twitter
Update your Twitter account from the shell

]]></description>
			<content:encoded><![CDATA[<p>This page will house the Shell Scripts that I have developed. Shell scripts are run from a <strong>Linux Command-line or <acronym title="Secure Shell">SSH</acronym></strong> interface.</p>
<div class="script">
<h3><a href="http://www.poundbangwhack.com/shell/post-to-twitter/">Post to Twitter</a></h3>
<p class="description">Update your Twitter account from the shell</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.poundbangwhack.com/scripts/shell/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to Post to Twitter from a Linux Shell</title>
		<link>http://www.poundbangwhack.com/2009/06/18/how-to-post-to-twitter-from-a-linux-shell/</link>
		<comments>http://www.poundbangwhack.com/2009/06/18/how-to-post-to-twitter-from-a-linux-shell/#comments</comments>
		<pubDate>Thu, 18 Jun 2009 23:08:59 +0000</pubDate>
		<dc:creator>Mark Stoecker</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[How To]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[SSH/Command Line]]></category>
		<category><![CDATA[Shell Scripts]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[Command-Line]]></category>
		<category><![CDATA[SSH]]></category>

		<guid isPermaLink="false">http://www.poundbangwhack.com/?p=784</guid>
		<description><![CDATA[I had a little downtime today at work and decided to write a shell script that I could use to tweet from the shell of my Linux server.  The reason is that Twitter is one of many social networking sites that is blocked at my workplace.  However, I do have access to my [...]]]></description>
			<content:encoded><![CDATA[<p>I had a little downtime today at work and decided to write a shell script that I could use to tweet from the shell of my Linux server.  The reason is that <strong>Twitter is one of many social networking sites</strong> that is blocked at my workplace.  However, I do have access to my server and <a href="http://www.commandlinefu.com/commands/view/176/update-twitter-via-curl" target="_blank">found a great one-liner on commandlinefu.com to update twitter via curl</a>.  I decided to expand on this a bit and wrote a shell script that offers a bit more than merely posting a tweet.  <a href="http://www.poundbangwhack.com/shell/post-to-twitter/">Check out my shell script to post to Twitter here.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.poundbangwhack.com/2009/06/18/how-to-post-to-twitter-from-a-linux-shell/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux Command-Line Cheat Sheet Posted</title>
		<link>http://www.poundbangwhack.com/2009/05/18/linux-command-line-cheat-sheet-posted/</link>
		<comments>http://www.poundbangwhack.com/2009/05/18/linux-command-line-cheat-sheet-posted/#comments</comments>
		<pubDate>Mon, 18 May 2009 23:25:28 +0000</pubDate>
		<dc:creator>Mark Stoecker</dc:creator>
				<category><![CDATA[Cheat Sheets]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[awk]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[Cheat Sheet]]></category>
		<category><![CDATA[find]]></category>
		<category><![CDATA[ftp]]></category>
		<category><![CDATA[grep]]></category>
		<category><![CDATA[RegExp]]></category>
		<category><![CDATA[Regular Expression]]></category>
		<category><![CDATA[rpm]]></category>
		<category><![CDATA[Scripting]]></category>
		<category><![CDATA[sed]]></category>
		<category><![CDATA[SSH]]></category>
		<category><![CDATA[tar]]></category>
		<category><![CDATA[vi]]></category>
		<category><![CDATA[yum]]></category>

		<guid isPermaLink="false">http://www.poundbangwhack.com/?p=195</guid>
		<description><![CDATA[I have posted today my <a href="http://www.poundbangwhack.com/linux-command-line-cheat-sheet/">Linux Command-Line Cheat Sheet.</a>  Unlike other Linux Cheat Sheets I have seen, I have created this one as more of a "targeted" cheat sheet.  Instead of just containing various command-line commands, my cheat sheet focuses on providing tips/tricks for various Linux commands including common switches and options used with those commands, including grep, sed, find, tar, rpm, and more.]]></description>
			<content:encoded><![CDATA[<p>I have posted today my <a href="http://www.poundbangwhack.com/linux-command-line-cheat-sheet/">Linux Command-Line Cheat Sheet.</a>  Unlike other Linux Cheat Sheets I have seen, I have created this one as more of a &#8220;targeted&#8221; cheat sheet.  Instead of just containing various command-line commands, my cheat sheet focuses on providing tips/tricks for various Linux commands including common switches and options used with those commands, including grep, sed, find, tar, rpm, and more.</p>
<p>I have also included numerous shortcuts/key combinations for the vi/vim text editor.  This may turn into it&#8217;s own cheat sheet in the near future if I continue to add to it due to the amount of info I have for vi alone.  Time will tell.<br />
<span id="more-195"></span><br />
You can view my <a href="http://www.poundbangwhack.com/linux-command-line-cheat-sheet/">Linux Command-Line Cheat Sheet here.</a>  If you have additional commands for one of the topics posted, or have a topic you would like to see added, leave a comment on that post and I will get it added.</p>
<p>**Note: awk is currently on that list although I have not added any info for it yet as it is an extremely extensive command and I am still working my way through the info I want to add.  In fact, <a href="http://www.amazon.com/gp/product/1565922255?ie=UTF8&#038;tag=httpwwwdese09-20&#038;linkCode=as2&#038;camp=1789&#038;creative=9325&#038;creativeASIN=1565922255">entire books have been written</a><img src="http://www.assoc-amazon.com/e/ir?t=httpwwwdese09-20&#038;l=as2&#038;o=1&#038;a=1565922255" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /><br />
 <a href="http://www.amazon.com/gp/product/0596003528?ie=UTF8&#038;tag=httpwwwdese09-20&#038;linkCode=as2&#038;camp=1789&#038;creative=9325&#038;creativeASIN=0596003528">about awk alone</a><img src="http://www.assoc-amazon.com/e/ir?t=httpwwwdese09-20&#038;l=as2&#038;o=1&#038;a=0596003528" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.poundbangwhack.com/2009/05/18/linux-command-line-cheat-sheet-posted/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
