<div dir="ltr"><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:small">If it works in ksh, that suits me.  Never made the leap to bash as such.<br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Apr 6, 2016 at 9:13 PM, Alex Carver <span dir="ltr">&lt;<a href="mailto:agcarver+ale@acarver.net" target="_blank">agcarver+ale@acarver.net</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I can&#39;t remember.  I know it works in bash and ksh.  I don&#39;t think I<br>
ever tried it in sh.<br>
<span class="im HOEnZb"><br>
On 2016-04-06 17:48, Pete Hardie wrote:<br>
&gt; One question on that - I assume it&#39;s bash only and not original(tm) Bourne shell?<br>
&gt;<br>
&gt; On Wed, Apr 6, 2016 at 8:08 PM, Alex Carver &lt;<a href="mailto:agcarver%2Bale@acarver.net">agcarver+ale@acarver.net</a><br>
</span><span class="im HOEnZb">&gt; &lt;mailto:<a href="mailto:agcarver%2Bale@acarver.net">agcarver+ale@acarver.net</a>&gt;&gt; wrote:<br>
&gt;<br>
&gt;     No echos, other commands or subshells here, use bash built-in regex:<br>
&gt;<br>
&gt;     (Make a subdirectory to accept the destination files to make things<br>
&gt;     cleaner or put the sources in a subdir and move the destinations up a level)<br>
&gt;<br>
&gt;     #!/bin/bash<br>
&gt;     subdir=subdirname<br>
&gt;     for f in * (or *.* or whatever pattern you want)<br>
&gt;     do<br>
&gt;              cp $f ${subdir}/${f%.*}.txt<br>
&gt;     done<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;     %.* trims everything from f after the last dot (including the dot)<br>
&gt;     returning the prefix<br>
&gt;     %%.* is greedier and will trim everything after the first dot<br>
&gt;<br>
&gt;<br>
&gt;     On 2016-04-06 15:39, Pete Hardie wrote:<br>
&gt;     &gt; perhaps something lile this:<br>
&gt;     &gt;<br>
&gt;     &gt; for file in *.*<br>
&gt;     &gt; do<br>
&gt;     &gt;      parts = $(echo $file| tr &quot;.&quot; &quot; &quot;)<br>
&gt;     &gt;      bname = `basename $parts[0] $parts[1]`<br>
&gt;     &gt;      cp $file ${bname}.txt #or whatever processing you are doing here with $file<br>
&gt;     &gt; the whole name and $base the name sans suffix<br>
&gt;     &gt; done<br>
&gt;     &gt;<br>
&gt;     &gt;<br>
&gt;     &gt;<br>
&gt;     &gt; On Wed, Apr 6, 2016 at 6:27 PM, Pete Hardie &lt;<a href="mailto:pete.hardie@gmail.com">pete.hardie@gmail.com</a> &lt;mailto:<a href="mailto:pete.hardie@gmail.com">pete.hardie@gmail.com</a>&gt;<br>
</span><span class="im HOEnZb">&gt;     &gt; &lt;mailto:<a href="mailto:pete.hardie@gmail.com">pete.hardie@gmail.com</a> &lt;mailto:<a href="mailto:pete.hardie@gmail.com">pete.hardie@gmail.com</a>&gt;&gt;&gt; wrote:<br>
&gt;     &gt;<br>
&gt;     &gt;     Is the issue that you don&#39;t want a separate command for each suffix, or that<br>
&gt;     &gt;     you will not know all the suffixes ahead of time?<br>
&gt;     &gt;<br>
&gt;     &gt;     On Wed, Apr 6, 2016 at 6:22 PM, Scott M. Jones &lt;<a href="mailto:eff@dragoncon.org">eff@dragoncon.org</a> &lt;mailto:<a href="mailto:eff@dragoncon.org">eff@dragoncon.org</a>&gt;<br>
</span><div class="HOEnZb"><div class="h5">&gt;      &gt;     &lt;mailto:<a href="mailto:eff@dragoncon.org">eff@dragoncon.org</a> &lt;mailto:<a href="mailto:eff@dragoncon.org">eff@dragoncon.org</a>&gt;&gt;&gt; wrote:<br>
&gt;      &gt;<br>
&gt;      &gt;         Great answers in Stack Overflow, including a bash-only solution.<br>
&gt;      &gt;<br>
&gt;      &gt;<br>
&gt;     <a href="http://stackoverflow.com/questions/15060384/one-liner-in-bash-using-perl-or-awk-to-change-extension-of-multiple-files" rel="noreferrer" target="_blank">http://stackoverflow.com/questions/15060384/one-liner-in-bash-using-perl-or-awk-to-change-extension-of-multiple-files</a><br>
&gt;      &gt;<br>
&gt;      &gt;         On 4/6/16 5:52 PM, leam hall wrote:<br>
&gt;      &gt;         &gt; I&#39;m trying to do something simple, change the ending of a script to<br>
&gt;      &gt;         &gt; &quot;.txt&quot;. So if it&#39;s my_script.sh it becomes my_script.txt.<br>
&gt;     Likewise for<br>
&gt;      &gt;         &gt; my_script.rb, etc. The .txt version will have the documentation and<br>
&gt;      &gt;         &gt; comments.<br>
&gt;      &gt;         &gt;<br>
&gt;      &gt;         &gt; So far all I&#39;ve some up with is:<br>
&gt;      &gt;         &gt;<br>
&gt;      &gt;         &gt;   IS_SH=`echo ${SCRIPTNAME} | grep -c sh$`<br>
&gt;      &gt;         &gt;<br>
&gt;      &gt;         &gt; For each expected script ending. Which seems a really ugly<br>
&gt;     thing to do.<br>
&gt;      &gt;         &gt; Is there a better way in Bourne shell to do this?<br>
&gt;      &gt;         &gt;<br>
&gt;      &gt;         &gt; Leam<br>
&gt;      &gt;<br>
&gt;<br>
<br>
_______________________________________________<br>
Ale mailing list<br>
<a href="mailto:Ale@ale.org">Ale@ale.org</a><br>
<a href="http://mail.ale.org/mailman/listinfo/ale" rel="noreferrer" target="_blank">http://mail.ale.org/mailman/listinfo/ale</a><br>
See JOBS, ANNOUNCE and SCHOOLS lists at<br>
<a href="http://mail.ale.org/mailman/listinfo" rel="noreferrer" target="_blank">http://mail.ale.org/mailman/listinfo</a><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br><div class="gmail_signature">Pete Hardie<br>--------<br>Better Living Through Bitmaps</div>
</div>