<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>alias on
A Scripter's Notes</title><link>https://scripter.co/categories/alias/</link><description>Recent content in alias
on A Scripter's Notes</description><language>en-us</language><managingEditor>kaushal.modi@gmail.com (Kaushal Modi)</managingEditor><webMaster>kaushal.modi@gmail.com (Kaushal Modi)</webMaster><lastBuildDate>Wed, 22 Apr 2026 08:24:58 -0400</lastBuildDate><generator>Hugo -- gohugo.io</generator><docs>https://validator.w3.org/feed/docs/rss2.html</docs><atom:link href="https://scripter.co/categories/alias/index.xml" rel="self" type="application/rss+xml"/><item><title>Using sed</title><link>https://scripter.co/using-sed/</link><description>&lt;p>&lt;em>sed&lt;/em> stands for &lt;strong>s&lt;/strong>tream &lt;strong>ed&lt;/strong>itor.&lt;/p>
&lt;p>This is the most common way of my sed usage:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-tcsh" data-lang="tcsh">&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> &lt;span class="o">[&lt;/span>SOMETHING&lt;span class="o">]&lt;/span> | sed &lt;span class="s1">&amp;#39;s/old/NEW/g&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Based on that, I have this tcsh alias&lt;sup id="fnref:1">&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref">1&lt;/a>&lt;/sup> to get timestamps that I use to append to quick tar backups.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-tcsh" data-lang="tcsh">&lt;span class="line">&lt;span class="cl">&lt;span class="nb">alias &lt;/span>gettimestamp &lt;span class="s1">&amp;#39;date | tr &amp;#34; :&amp;#34; &amp;#34;__&amp;#34; | sed &amp;#39;&lt;/span>&lt;span class="s2">&amp;#34;&amp;#39;&amp;#34;&lt;/span>&lt;span class="s1">&amp;#39;s/_[0-9]*_EDT.*//g&amp;#39;&lt;/span>&lt;span class="s2">&amp;#34;&amp;#39;&amp;#34;&lt;/span>&lt;span class="s1">&amp;#39;&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Learn about sed from [here][s1].&lt;/p>
&lt;div class="footnotes" role="doc-endnotes">
&lt;hr>
&lt;ol>
&lt;li id="fn:1">
&lt;p>Note how single quotes are escaped inside single-quoted alias definitions in tcsh.
[s1]: &lt;a href="http://www.grymoire.com/Unix/Sed.html">http://www.grymoire.com/Unix/Sed.html&lt;/a>&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink">&amp;#x21a9;&amp;#xfe0e;&lt;/a>&lt;/p>
&lt;/li>
&lt;/ol>
&lt;/div></description><category domain="https://scripter.co/categories/sed">sed</category><category domain="https://scripter.co/categories/unix">unix</category><category domain="https://scripter.co/categories/tcsh">tcsh</category><category domain="https://scripter.co/categories/alias">alias</category><guid>https://scripter.co/using-sed/</guid><pubDate>Mon, 17 Mar 2014 09:31:29 -0400</pubDate></item><item><title>Writing aliases with optional arguments in tcsh</title><link>https://scripter.co/writing-aliases-with-optional-arguments-in-tcsh/</link><description>&lt;p>Some times I would need to define an alias in tcsh which can have
optional arguments. tcsh doesn&amp;rsquo;t seem to support that directly.&lt;/p>
&lt;p>Here&amp;rsquo;s how I solve that problem.&lt;/p>
&lt;p>If you have an alias &lt;code>alias test 'echo \!:1*'&lt;/code> and if you run &lt;code>test abc def&lt;/code>, you will get the output &lt;code>abc def&lt;/code>.&lt;/p>
&lt;p>&lt;code>!:1*&lt;/code> prints out all the arguments starting from argument 1 till the
last where even argument 1 is optional. If that argument doesn&amp;rsquo;t
exist, the variable will be assigned a null value.&lt;/p>
&lt;p>&lt;strong>But&lt;/strong> tcsh will not complain about it &amp;ndash; the &lt;code>*&lt;/code> after &lt;code>!:1&lt;/code> is
the beauty. On the other hand, if I have an alias &lt;code>alias test2 'echo \!:1'&lt;/code>, and if I run &lt;code>test&lt;/code> &amp;ndash; with zero arguments &amp;ndash; tcsh will give
an error.&lt;/p>
&lt;p>So extending that, I have the below alias defined to grab an argument
of any index.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-tcsh" data-lang="tcsh">&lt;span class="line">&lt;span class="cl">&lt;span class="nb">alias &lt;/span>opt_args &lt;span class="s1">&amp;#39;set arg1 = `echo \!:1* | awk &amp;#39;&lt;/span>&lt;span class="s2">&amp;#34;&amp;#39;&amp;#34;&lt;/span>&lt;span class="s1">&amp;#39;{ print $1 }&amp;#39;&lt;/span>&lt;span class="s2">&amp;#34;&amp;#39;&amp;#34;&lt;/span>&lt;span class="s1">&amp;#39;`; \\
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1"> echo -n &amp;#34;Arg num 1 = $arg1 &amp;#34;; \\
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1"> set arg2 = `echo \!:2* | awk &amp;#39;&lt;/span>&lt;span class="s2">&amp;#34;&amp;#39;&amp;#34;&lt;/span>&lt;span class="s1">&amp;#39;{ print $1 }&amp;#39;&lt;/span>&lt;span class="s2">&amp;#34;&amp;#39;&amp;#34;&lt;/span>&lt;span class="s1">&amp;#39;`; \\
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1"> echo -n &amp;#34;Arg num 2 = $arg2 &amp;#34;; \\
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1"> set arg3 = `echo \!:3* | awk &amp;#39;&lt;/span>&lt;span class="s2">&amp;#34;&amp;#39;&amp;#34;&lt;/span>&lt;span class="s1">&amp;#39;{ print $1 }&amp;#39;&lt;/span>&lt;span class="s2">&amp;#34;&amp;#39;&amp;#34;&lt;/span>&lt;span class="s1">&amp;#39;`; \\
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1"> echo -n &amp;#34;Arg num 3 = $arg3 &amp;#34;; \\
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1"> echo &amp;#34;&amp;#34;; \\
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1"> &amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>You can test this alias by running these commands:&lt;/p>
&lt;pre tabindex="0">&lt;code>opt_args abc
opt_args abc def
opt_args abc def ghi
opt_args abc def ghi jkl
&lt;/code>&lt;/pre></description><category domain="https://scripter.co/categories/tcsh">tcsh</category><category domain="https://scripter.co/categories/alias">alias</category><category domain="https://scripter.co/categories/awk">awk</category><guid>https://scripter.co/writing-aliases-with-optional-arguments-in-tcsh/</guid><pubDate>Wed, 12 Mar 2014 11:46:49 -0400</pubDate></item></channel></rss>