<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Grep &amp;mdash; Paul Sutton</title>
    <link>https://personaljournal.ca/paulsutton/tag:Grep</link>
    <description>Personal Blog</description>
    <pubDate>Tue, 05 May 2026 15:01:44 +0000</pubDate>
    <item>
      <title>Bash scripting 12 – Files and Grep</title>
      <link>https://personaljournal.ca/paulsutton/bash-scripting-12-files-and-grep</link>
      <description>&lt;![CDATA[Bash scripting 12 – Files and Grep&#xA;&#xA;Rather than make a video for this,  I decided to just make a blog post so that I could include downloadable or at least copy / pasteable components.&#xA;&#xA;Grep stands for GNU Regular Expression Parser,  In essence and among other things, it can read (or parse) a file and report on contents, or in the case of this,  find a specific string of text.&#xA;&#xA;lorem Ipsum, is standard in the printing industry as it is dummy text used to fill on a page.  I have pasted below an example and it just happens to explain further.&#xA;&#xA;Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry&#39;s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.~&#xA;&#xA;If you copy and paste the above and save in a text file called lorem.txt we can do some neat stuff with grep and a few other commands.  I am not an expert at this, so this is some of what I picked up while researching this post.&#xA;&#xA;Firstly we can find a specific word (or string) in the text with&#xA;&#xA;cat lorem.txt | grep the&#xA;we can also do&#xA;grep the lorem.txt&#xA;&#xA;Both will search the file lorem.txt, display the file contents and highlight the word &#39;the&#39; from the text.&#xA;&#xA;This is great, so what else can we do&#xA;&#xA;In a short file, the number of times a word may appear may be less than 5 or 10.  So we could just count manually.  As discussed in a previous video, the command wc or word count, does what it says and counts the number of words.&#xA;&#xA;So I found the following&#xA;&#xA;cat lorem.txt | grep -o the | wc -l&#xA;Which gives the output as 6 which is how many times the word &#39;the&#39; appears in the text.&#xA;&#xA;As with other commands, there is a man page so &#xA;&#xA;man grep&#xA;and&#xA;man wc&#xA;Should provide useful information, you can also search for information with duckduckgo and there are numberous tutorials on line. &#xA;&#xA;Hope this is useful&#xA;&#xA;Chat&#xA;&#xA;I am on the Devon and Cornwall Linux user group mailing list and also their matrix channel as zleap, it is better to ask there,  that way others can answer too.&#xA;&#xA;Tags&#xA;&#xA;#Bash,#Bashscripting,#Files,#TextSearch,#StringSearch,#Grep,#wc,#WordCount&#xA;&#xA;hr&#xD;&#xA;&#xD;&#xA;table&#xD;&#xA;thead&#xD;&#xA;trtda rel=&#34;me&#34; href=&#34;https://qoto.org/@zleap&#34;Mastodon/a/td&#xD;&#xA;tda href=&#34;https://wiki.ircnow.org/?n=Shelllabs.Intro&#34;ShellLabs/td&#xD;&#xA;tda href=&#34;https://joinmastodon.org/&#34;Join Mastodon/a/td/tr/thead/table&#xD;&#xA;center&#xD;&#xA;AI statement : b Consent is NOT granted to use the content of this blog for the purposes of AI training or similar activity.  Consent CANNOT be assumed, it has to be granted. /b&#xD;&#xA;/center&#xD;&#xA;&#xD;&#xA;a href=&#34;https://liberapay.com/PaulSutton/donate&#34;img alt=&#34;Donate using Liberapay&#34; src=&#34;https://liberapay.com/assets/widgets/donate.svg&#34;/a&#xD;&#xA;]]&gt;</description>
      <content:encoded><![CDATA[<p>Bash scripting 12 – Files and Grep</p>

<p>Rather than make a video for this,  I decided to just make a blog post so that I could include downloadable or at least copy / pasteable components.</p>

<p>Grep stands for GNU Regular Expression Parser,  In essence and among other things, it can read (or parse) a file and report on contents, or in the case of this,  find a specific string of text.</p>

<p>lorem Ipsum, is standard in the printing industry as it is dummy text used to fill on a page.  I have pasted below an example and it just happens to explain further.</p>

<pre><code>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry&#39;s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.~

</code></pre>

<p>If you copy and paste the above and save in a text file called lorem.txt we can do some neat stuff with grep and a few other commands.  I am not an expert at this, so this is some of what I picked up while researching this post.</p>

<p>Firstly we can find a specific word (or string) in the text with</p>

<pre><code>cat lorem.txt | grep the
</code></pre>

<p>we can also do</p>

<pre><code>grep the lorem.txt
</code></pre>

<p>Both will search the file lorem.txt, display the file contents and highlight the word &#39;the&#39; from the text.</p>

<p>This is great, so what else can we do</p>

<p>In a short file, the number of times a word may appear may be less than 5 or 10.  So we could just count manually.  As discussed in a previous video, the command <strong>wc</strong> or word count, does what it says and counts the number of words.</p>

<p>So I found the following</p>

<pre><code>cat lorem.txt | grep -o the | wc -l
</code></pre>

<p>Which gives the output as <em>6</em> which is how many times the word &#39;the&#39; appears in the text.</p>

<p>As with other commands, there is a man page so</p>

<pre><code>man grep
</code></pre>

<p>and</p>

<pre><code>man wc
</code></pre>

<p>Should provide useful information, you can also search for information with <a href="https://www.duckduckgo.com" rel="nofollow">duckduckgo</a> and there are numberous tutorials on line.</p>

<p>Hope this is useful</p>

<p><strong>Chat</strong></p>

<p>I am on the Devon and Cornwall Linux user group mailing list and also their <a href="https://matrix.to/#/%23dcglug:matrix.org" rel="nofollow">matrix channel</a> as zleap, it is better to ask there,  that way others can answer too.</p>

<p><strong>Tags</strong></p>

<p><a href="/paulsutton/tag:Bash" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">Bash</span></a>,<a href="/paulsutton/tag:Bashscripting" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">Bashscripting</span></a>,<a href="/paulsutton/tag:Files" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">Files</span></a>,<a href="/paulsutton/tag:TextSearch" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">TextSearch</span></a>,<a href="/paulsutton/tag:StringSearch" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">StringSearch</span></a>,<a href="/paulsutton/tag:Grep" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">Grep</span></a>,<a href="/paulsutton/tag:wc" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">wc</span></a>,<a href="/paulsutton/tag:WordCount" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">WordCount</span></a></p>

<hr>

<p><table>
<thead>
<tr><td><a href="https://qoto.org/@zleap" rel="nofollow">Mastodon</a></td>
<td><a href="https://wiki.ircnow.org/?n=Shelllabs.Intro" rel="nofollow">ShellLabs</td>
<td><a href="https://joinmastodon.org/" rel="nofollow">Join Mastodon</a></td></tr></thead></table>

AI statement : <b> Consent is NOT granted to use the content of this blog for the purposes of AI training or similar activity.  Consent CANNOT be assumed, it has to be granted. </b>
</p>

<p><a href="https://liberapay.com/PaulSutton/donate" rel="nofollow"><img alt="Donate using Liberapay" src="https://liberapay.com/assets/widgets/donate.svg"></a></p>
]]></content:encoded>
      <guid>https://personaljournal.ca/paulsutton/bash-scripting-12-files-and-grep</guid>
      <pubDate>Fri, 11 Apr 2025 14:51:20 +0000</pubDate>
    </item>
    <item>
      <title>CyberSecurity part 13</title>
      <link>https://personaljournal.ca/paulsutton/cybersecurity-part-13</link>
      <description>&lt;![CDATA[CyberSecurity part 13&#xA;&#xA;So we are on part 13,  well done and thank you to everyone who has stuck with this so far.  &#xA;&#xA;So today, I am going to link to three videos, which give more details on specific bash commands.  Hopefully this will speed things up a little,  there are probably better videos,  so please feel free to search, watch and share alternative videos. &#xA;&#xA;sed - stream editor&#xA;grep - gnu regular expression parser&#xA;cron - job control scheduling&#xA;&#xA;Links&#xA;&#xA;login link &#xA;Bash Tutorials&#xA;Tuxiversity Forum&#xA;Udemy Course&#xA;&#xA;Tags&#xA;&#xA;#CyberSecurity,#Shell,#Grep,#Sed,#Cron&#xA;&#xA;hr&#xD;&#xA;&#xD;&#xA;table&#xD;&#xA;thead&#xD;&#xA;trtda rel=&#34;me&#34; href=&#34;https://qoto.org/@zleap&#34;Mastodon/a/td&#xD;&#xA;tda href=&#34;https://wiki.ircnow.org/?n=Shelllabs.Intro&#34;ShellLabs/td&#xD;&#xA;tda href=&#34;https://joinmastodon.org/&#34;Join Mastodon/a/td/tr/thead/table&#xD;&#xA;center&#xD;&#xA;AI statement : b Consent is NOT granted to use the content of this blog for the purposes of AI training or similar activity.  Consent CANNOT be assumed, it has to be granted. /b&#xD;&#xA;/center&#xD;&#xA;&#xD;&#xA;a href=&#34;https://liberapay.com/PaulSutton/donate&#34;img alt=&#34;Donate using Liberapay&#34; src=&#34;https://liberapay.com/assets/widgets/donate.svg&#34;/a&#xD;&#xA;]]&gt;</description>
      <content:encoded><![CDATA[<p>CyberSecurity part 13</p>

<p>So we are on part 13,  well done and thank you to everyone who has stuck with this so far.</p>

<p>So today, I am going to link to three videos, which give more details on specific bash commands.  Hopefully this will speed things up a little,  there are probably better videos,  so please feel free to search, watch and share alternative videos.</p>
<ul><li><a href="https://www.youtube.com/watch?v=EACe7aiGczw" rel="nofollow">sed – stream editor</a></li>
<li><a href="https://www.youtube.com/watch?v=VGgTmxXp7xQ" rel="nofollow">grep – gnu regular expression parser</a></li>
<li><a href="https://www.youtube.com/watch?v=v952m13p-b4" rel="nofollow">cron – job control scheduling</a></li></ul>

<p><strong>Links</strong></p>
<ul><li><a href="https://vfsync.org/index.html" rel="nofollow">login link</a></li>
<li><a href="https://tecadmin.net/tutorial/bash-scripting/" rel="nofollow">Bash Tutorials</a></li>
<li><a href="https://forum.tuxiversity.org/" rel="nofollow">Tuxiversity Forum</a></li>
<li><a href="https://www.udemy.com/course/bash-scripting/" rel="nofollow">Udemy Course</a></li></ul>

<p><strong>Tags</strong></p>

<p><a href="/paulsutton/tag:CyberSecurity" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">CyberSecurity</span></a>,<a href="/paulsutton/tag:Shell" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">Shell</span></a>,<a href="/paulsutton/tag:Grep" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">Grep</span></a>,<a href="/paulsutton/tag:Sed" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">Sed</span></a>,<a href="/paulsutton/tag:Cron" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">Cron</span></a></p>

<hr>

<p><table>
<thead>
<tr><td><a href="https://qoto.org/@zleap" rel="nofollow">Mastodon</a></td>
<td><a href="https://wiki.ircnow.org/?n=Shelllabs.Intro" rel="nofollow">ShellLabs</td>
<td><a href="https://joinmastodon.org/" rel="nofollow">Join Mastodon</a></td></tr></thead></table>

AI statement : <b> Consent is NOT granted to use the content of this blog for the purposes of AI training or similar activity.  Consent CANNOT be assumed, it has to be granted. </b>
</p>

<p><a href="https://liberapay.com/PaulSutton/donate" rel="nofollow"><img alt="Donate using Liberapay" src="https://liberapay.com/assets/widgets/donate.svg"></a></p>
]]></content:encoded>
      <guid>https://personaljournal.ca/paulsutton/cybersecurity-part-13</guid>
      <pubDate>Sat, 14 May 2022 06:30:00 +0000</pubDate>
    </item>
    <item>
      <title>Ansi Weather</title>
      <link>https://personaljournal.ca/paulsutton/ansi-weather</link>
      <description>&lt;![CDATA[Ansi Weather&#xA;&#xA;img src=&#34;https://socialhub.activitypub.rocks/uploads/default/original/1X/6aac842b7ff5c58385a02f3a131c259281be88c8.png&#34; target=&#34;_blank&#34; &#xA;&#xA;a href=&#34;https://liberapay.com/PaulSutton/donate&#34;img alt=&#34;Donate using Liberapay&#34; src=&#34;https://liberapay.com/assets/widgets/donate.svg&#34;/a&#xA;&#xA;Getting weather information is really useful. What happens if you&#39;re at the command line in Linux?  I found a really little application that can help&#xA;&#xA;ansiweather &#xA;&#xA;apt install ansiweather&#xA;&#xA;ansiweather -l Plymouth, UK&#xA;&#xA;Ansi Weather Output&#xA;&#xA;So what else can we do with this&#xA;&#xA;Send the output to Mastodon with toot post&#xA;&#xA;This is a two step process&#xA;&#xA;ansiweather -l Plymouth, UK   weather.txt&#xA;toot post &lt; weather.txt&#xA;&#xA;Will send the weather info to Mastodon.&#xA;&#xA;However this does not include any date info&#xA;&#xA;We can fix this with&#xA;&#xA;date   weatherinfo.txt&#xA;ansiweather -l Plymouth, UK     weatherinfo.txt&#xA;&#xA;then send the whole lot to Mastodon with&#xA;&#xA;toot post &lt; weatherinfo.txt&#xA;&#xA;So, if we put this in to a final shell script we need:- &#xA;&#xA;send weather info to Mastodon&#xA;current date&#xA;date   weatherinfo.txt&#xA;current weather&#xA;ansiweather -l Plymouth, UK     weatherinfo.txt&#xA;send to Mastodon&#xA;toot post &lt; weatherinfo.txt&#xA;done&#xA;echo done&#xA;&#xA;Again released under GPLv3&#xA;&#xA;I tried to get festival to speak the weather, it is not perfect but this sort of works,  you will need to direct to weather.txt first.  &#xA;&#xA;festival --tts &lt; weather.txt&#xA; &#xA;Looking in to this further, the issue is the brackets etc, so this stackoverflow post&#xA;&#xA;strips out the colour formatting&#xA;&#xA;sed &#39;s/\x1b\[m//g&#39; weatherinfo.txt&#xA;&#xA;Therefore &#xA;&#xA;sed &#39;s/\x1b\[m//g&#39; weatherinfo.txt   weatherinfo2.txt&#xA;&#xA;Sends the newly formatted text to weatherinfo2.txt&#xA;&#xA;So running back through festival&#xA;&#xA;festival --tts &lt; weather.txt&#xA;&#xA;Is perhaps a little better, but not perfect&#xA;&#xA;So going back to what we wrote earlier to send to Mastodon, the new script &#xA;&#xA;  1 #send weather info to Mastodon&#xA;  2 # current date&#xA;  3 date   weatherinfo.txt&#xA;  4 # current weather&#xA;  5 ansiweather -l Plymouth, UK     weatherinfo.txt&#xA;  6 # clean up output with sed&#xA;  7 sed &#39;s/\x1b\[*m//g&#39; weatherinfo.txt   weatherinfo2.txt&#xA;  8 #send to Mastodon&#xA;  9 toot post &lt; weatherinfo2.txt&#xA; 10 # done&#xA; 11 echo done&#xA;&#xA;Produces much nicer output. The top bottom part of this illustrates what was sent before we stripped out the colour formatting&#xA;&#xA;However it still isn&#39;t perfect, as it removes part some of the wording, but it is hopefully getting there.  &#xA;&#xA;Weather Output (new)&#xA;&#xA;REFERENCES&#xA;&#xA;Ansi Weather&#xA;Free Software Foundation&#xA;&#xA;TAGS&#xA;&#xA;#YearOfTheFediverse,#Weather,#Scripting,#Bash,#Linux,&#xA;#Mastodon,#ProblemSolving,#AnsiWeather,#programming,&#xA;#Stackoverflow,#sed,#cat,#grep,GPL3,#FSF&#xA;&#xA;a rel=&#34;license&#34; href=&#34;http://creativecommons.org/licenses/by-sa/4.0/&#34;img alt=&#34;Creative Commons Licence&#34; style=&#34;border-width:0&#34; src=&#34;https://i.creativecommons.org/l/by-sa/4.0/88x31.png&#34; //abr /This work is licensed under a a rel=&#34;license&#34; href=&#34;http://creativecommons.org/licenses/by-sa/4.0/&#34;Creative Commons Attribution-ShareAlike 4.0 International License/a&#xA;&#xA;hr&#xD;&#xA;&#xD;&#xA;table&#xD;&#xA;thead&#xD;&#xA;trtda rel=&#34;me&#34; href=&#34;https://qoto.org/@zleap&#34;Mastodon/a/td&#xD;&#xA;tda href=&#34;https://wiki.ircnow.org/?n=Shelllabs.Intro&#34;ShellLabs/td&#xD;&#xA;tda href=&#34;https://joinmastodon.org/&#34;Join Mastodon/a/td/tr/thead/table&#xD;&#xA;center&#xD;&#xA;AI statement : b Consent is NOT granted to use the content of this blog for the purposes of AI training or similar activity.  Consent CANNOT be assumed, it has to be granted. /b&#xD;&#xA;/center&#xD;&#xA;&#xD;&#xA;a href=&#34;https://liberapay.com/PaulSutton/donate&#34;img alt=&#34;Donate using Liberapay&#34; src=&#34;https://liberapay.com/assets/widgets/donate.svg&#34;/a&#xD;&#xA;]]&gt;</description>
      <content:encoded><![CDATA[<p>Ansi Weather</p>

<p><a href="https://torresjrjr.com/archive/2020-07-19-guide-to-the-fediverse" rel="nofollow"><img src="https://socialhub.activitypub.rocks/uploads/default/original/1X/6aac842b7ff5c58385a02f3a131c259281be88c8.png"></a></p>

<p><a href="https://liberapay.com/PaulSutton/donate" rel="nofollow"><img alt="Donate using Liberapay" src="https://liberapay.com/assets/widgets/donate.svg"></a></p>

<p>Getting weather information is really useful. What happens if you&#39;re at the command line in Linux?  I found a really little application that can help</p>

<p>ansiweather</p>

<p>apt install ansiweather</p>

<p>ansiweather -l Plymouth, UK</p>

<p><img src="https://git.qoto.org/zleap/documents/-/raw/master/ansiweather.png" alt="Ansi Weather Output"></p>

<p>So what else can we do with this</p>
<ol><li>Send the output to Mastodon with toot post</li></ol>

<p>This is a two step process</p>
<ol><li>ansiweather -l Plymouth, UK &gt; weather.txt</li>
<li>toot post &lt; weather.txt</li></ol>

<p>Will send the weather info to Mastodon.</p>

<p>However this does not include any date info</p>

<p>We can fix this with</p>
<ol><li>date &gt; weatherinfo.txt</li>
<li>ansiweather -l Plymouth, UK &gt;&gt; weatherinfo.txt</li></ol>

<p>then send the whole lot to Mastodon with</p>
<ol><li>toot post &lt; weatherinfo.txt</li></ol>

<p>So, if we put this in to a final shell script we need:-</p>

<pre><code>#send weather info to Mastodon
# current date
date &gt; weatherinfo.txt
# current weather
ansiweather -l Plymouth, UK &gt;&gt; weatherinfo.txt
#send to Mastodon
toot post &lt; weatherinfo.txt
# done
echo done

</code></pre>

<p>Again released under <a href="https://www.gnu.org" rel="nofollow">GPLv3</a></p>

<p>I tried to get festival to speak the weather, it is not perfect but this sort of works,  you will need to direct to weather.txt first.</p>

<p>festival —tts &lt; weather.txt</p>

<p>Looking in to this further, the issue is the brackets etc, so this <a href="https://stackoverflow.com/questions/36547654/remove-colour-code-from-linux-files" rel="nofollow">stackoverflow post</a></p>

<p>strips out the colour formatting</p>

<p>sed &#39;s/\x1b[[^\x1b]*m//g&#39; weatherinfo.txt</p>

<p>Therefore</p>

<p>sed &#39;s/\x1b[[^\x1b]*m//g&#39; weatherinfo.txt &gt; weatherinfo2.txt</p>

<p>Sends the newly formatted text to weatherinfo2.txt</p>

<p>So running back through festival</p>

<p>festival —tts &lt; weather.txt</p>

<p>Is perhaps a little better, but not perfect</p>

<p>So going back to what we wrote earlier to send to Mastodon, the new script</p>

<pre><code>  1 #send weather info to Mastodon
  2 # current date
  3 date &gt; weatherinfo.txt
  4 # current weather
  5 ansiweather -l Plymouth, UK &gt;&gt; weatherinfo.txt
  6 # clean up output with sed
  7 sed &#39;s/\x1b\[[^\x1b]*m//g&#39; weatherinfo.txt &gt; weatherinfo2.txt
  8 #send to Mastodon
  9 toot post &lt; weatherinfo2.txt
 10 # done
 11 echo done

</code></pre>

<p>Produces much nicer output. The top bottom part of this illustrates what was sent before we stripped out the colour formatting</p>

<p>However it still isn&#39;t perfect, as it removes part some of the wording, but it is hopefully getting there.</p>

<p><img src="https://git.qoto.org/zleap/documents/-/raw/master/weatheroutput.png" alt="Weather Output (new)"></p>

<p><strong>REFERENCES</strong></p>
<ul><li><a href="https://www.maketecheasier.com/check-weather-from-terminal-with-ansiweather/" rel="nofollow">Ansi Weather</a></li>
<li><a href="https://www.fsf.org" rel="nofollow">Free Software Foundation</a></li></ul>

<p><strong>TAGS</strong></p>

<p><a href="/paulsutton/tag:YearOfTheFediverse" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">YearOfTheFediverse</span></a>,<a href="/paulsutton/tag:Weather" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">Weather</span></a>,<a href="/paulsutton/tag:Scripting" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">Scripting</span></a>,<a href="/paulsutton/tag:Bash" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">Bash</span></a>,<a href="/paulsutton/tag:Linux" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">Linux</span></a>,
<a href="/paulsutton/tag:Mastodon" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">Mastodon</span></a>,<a href="/paulsutton/tag:ProblemSolving" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">ProblemSolving</span></a>,<a href="/paulsutton/tag:AnsiWeather" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">AnsiWeather</span></a>,<a href="/paulsutton/tag:programming" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">programming</span></a>,
<a href="/paulsutton/tag:Stackoverflow" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">Stackoverflow</span></a>,<a href="/paulsutton/tag:sed" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">sed</span></a>,<a href="/paulsutton/tag:cat" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">cat</span></a>,<a href="/paulsutton/tag:grep" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">grep</span></a>,GPL3,<a href="/paulsutton/tag:FSF" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">FSF</span></a></p>

<p><a href="http://creativecommons.org/licenses/by-sa/4.0/" rel="nofollow"><img alt="Creative Commons Licence" style="border-width:0" src="https://i.creativecommons.org/l/by-sa/4.0/88x31.png"/></a><br/>This work is licensed under a <a href="http://creativecommons.org/licenses/by-sa/4.0/" rel="nofollow">Creative Commons Attribution-ShareAlike 4.0 International License</a></p>

<hr>

<p><table>
<thead>
<tr><td><a href="https://qoto.org/@zleap" rel="nofollow">Mastodon</a></td>
<td><a href="https://wiki.ircnow.org/?n=Shelllabs.Intro" rel="nofollow">ShellLabs</td>
<td><a href="https://joinmastodon.org/" rel="nofollow">Join Mastodon</a></td></tr></thead></table>

AI statement : <b> Consent is NOT granted to use the content of this blog for the purposes of AI training or similar activity.  Consent CANNOT be assumed, it has to be granted. </b>
</p>

<p><a href="https://liberapay.com/PaulSutton/donate" rel="nofollow"><img alt="Donate using Liberapay" src="https://liberapay.com/assets/widgets/donate.svg"></a></p>
]]></content:encoded>
      <guid>https://personaljournal.ca/paulsutton/ansi-weather</guid>
      <pubDate>Sat, 30 Jan 2021 22:42:42 +0000</pubDate>
    </item>
  </channel>
</rss>