<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto">I've always done as Jason suggests, but the one thing that is usually helpful is the addition of "basename":<div><br></div><div><blockquote type="cite"><div dir="ltr"><div dir="ltr"><div><font color="#000000"><span style="caret-color: rgb(0, 0, 0); background-color: rgba(255, 255, 255, 0);">for $FILE in *</span></font></div><div><font color="#000000"><span style="caret-color: rgb(0, 0, 0); background-color: rgba(255, 255, 255, 0);">do</span></font></div><div><font color="#000000"><span style="caret-color: rgb(0, 0, 0); background-color: rgba(255, 255, 255, 0);">mv $FILE $(basename $FILE .htm).whatever</span></font></div><div><font color="#000000"><span style="caret-color: rgb(0, 0, 0); background-color: rgba(255, 255, 255, 0);">done</span></font></div></div></div></blockquote><div><br></div>Basename will remove an arbitrary string (eg: .htm) from the end of another string, thus getting rid of the old extension, so you can tack on your new ".html" or ".whatever" extension.</div><div><br></div><div>The fact that this covers most use cases is why there is no utility, I suspect.  When I was first getting started, a grey beard showed me loops - I think for this exact reason, actually.</div><div><br></div><div>Also, there would be no need for multiple "*" wildcards, I expect, since every "*.htm" is going to get the new target extension, so why not have the syntax for the rename utility be "rename *.oldext .newext"?<br><br><div id="AppleMailSignature" dir="ltr"><div><span style="background-color: rgba(255, 255, 255, 0);">   Warm Regards,</span></div><div><span style="background-color: rgba(255, 255, 255, 0);">  -Cedric</span></div><div><span style="background-color: rgba(255, 255, 255, 0);"><br></span><div id="AppleMailSignature"><span style="background-color: rgba(255, 255, 255, 0);">[<b>CCj</b>] [Cedric Puddy, President, CCj/Clearline Inc..  T: <a href="tel:519-342-4004;102" dir="ltr" x-apple-data-detectors="true" x-apple-data-detectors-type="telephone" x-apple-data-detectors-result="2">519-342-4004x102</a>]</span></div></div></div><div dir="ltr"><br>On Sep 26, 2019, at 13:04, Jason Eckert <<a href="mailto:jason.eckert@gmail.com">jason.eckert@gmail.com</a>> wrote:<br><br></div><blockquote type="cite"><div dir="ltr"><div dir="ltr">Why not write a simple for loop in bash?<div>for $FILE in *</div><div>do</div><div>mv $FILE $FILE.whatever</div><div>done</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Sep 26, 2019 at 4:23 AM Ronald Barnes <<a href="mailto:ron@ronaldbarnes.ca">ron@ronaldbarnes.ca</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br>
Hi everyone,<br>
<br>
As you probably already know, Gnu/Linux distributions do not come with a <br>
rename utility similar to what some of us "grew up on" in DOS and/or OS/2.<br>
<br>
The "mv" (move) command is to be used instead. But it doesn't handle <br>
things like "mv *.htm *.html".<br>
<br>
So, I decided to tackle writing one.<br>
<br>
<br>
Since bash has "Pathname Expansion", which expands a parameter like <br>
"*.htm" into a list of files that match that expression, it was a bit <br>
more challenging than I expected.<br>
<br>
<br>
However, I think I have something that handles wildcards sufficiently well.<br>
<br>
> <a href="https://github.com/RonaldBarnes/bash-rename" rel="noreferrer" target="_blank">https://github.com/RonaldBarnes/bash-rename</a><br>
<br>
<br>
If anyone is interested in having a look, and providing feedback, it <br>
would be welcome.<br>
<br>
<br>
There is a "rename.sh" which does the parameter parsing (although once <br>
it parses the parameters, "mv" does the actual work), and a <br>
"<a href="http://rename.unit-tests.sh" rel="noreferrer" target="_blank">rename.unit-tests.sh</a>" which is - so far - just notes to myself on edge <br>
cases.<br>
<br>
<br>
<br>
I'm pretty sure this utility can be of some use to a significant number <br>
of people and hopefully someone on this list will agree.<br>
<br>
<br>
Note, there's a "no-op" aka "dry-run" option of -n that will prevent any <br>
files from being touched / moved / renamed, and a -vvv option to spew <br>
out debugging info to help determine how the script derives the target <br>
file name from the wildcards provided.<br>
<br>
<br>
<br>
Thanks!<br>
<br>
rb<br>
<br>
_______________________________________________<br>
kwlug-disc mailing list<br>
<a href="mailto:kwlug-disc@kwlug.org" target="_blank">kwlug-disc@kwlug.org</a><br>
<a href="http://kwlug.org/mailman/listinfo/kwlug-disc_kwlug.org" rel="noreferrer" target="_blank">http://kwlug.org/mailman/listinfo/kwlug-disc_kwlug.org</a><br>
</blockquote></div>
</div></blockquote><blockquote type="cite"><div dir="ltr"><span>_______________________________________________</span><br><span>kwlug-disc mailing list</span><br><span><a href="mailto:kwlug-disc@kwlug.org">kwlug-disc@kwlug.org</a></span><br><span><a href="http://kwlug.org/mailman/listinfo/kwlug-disc_kwlug.org">http://kwlug.org/mailman/listinfo/kwlug-disc_kwlug.org</a></span><br></div></blockquote></div></body></html>