I know how I can rename files and such, but I'm having trouble with this.
I only need to rename test-this
in a for loop.
test-this.ext
test-this.volume001+02.ext
test-this.volume002+04.ext
test-this.volume003+08.ext
test-this.volume004+16.ext
test-this.volume005+32.ext
test-this.volume006+64.ext
test-this.volume007+78.ext
Use
rename
as shown below:This will replace
test-this
withfoo
in the file names.If you don't have
rename
use afor
loop as shown below:If you have all of these files in one folder and you're on Linux you can use:
The result will be:
rename
can take a command as the first argument. The command here consists of four parts:s
: flag to substitute a string with another string,test-this
: the string you want to replace,REPLACESTRING
: the string you want to replace the search string with, andg
: a flag indicating that all matches of the search string shall be replaced, i.e. if the filename istest-this-abc-test-this.ext
the result will beREPLACESTRING-abc-REPLACESTRING.ext
.Refer to
man sed
for a detailed description of the flags.Function
I'm on OSX and my bash doesn't come with
rename
as a built-in function. I create a function in my.bash_profile
that takes the first argument, which is a pattern in the file that should only match once, and doesn't care what comes after it, and replaces with the text of argument 2.Input Files
Command
rename test-this hello-there
Output