Helpful Information
 
 
Category: UNIX Help
need tcsh command line script to rename files

I have a large number of text files with characters I'd like to replace such as "/" and "&" with "_". I would also like to add the .txt extension. Does someone know the best way to do this from the command line in the Mac OsX shell (tcsh)?

Thank you so kindly,
-E

I found this:
http://lab.artlung.com/other/unix-batch-file-rename/



% more t.sh
for i in * ; do
echo mv \"$i\" \"$i.mp3\" | sh
done

The script sam posted won't work. It's for bash and it adds a '.mp3' extensions to a file, that's all it does.

This works only in bash, not tcsh, but AFAIK OS X ships both, it just uses tcsh as the default.

for FILE in *; do mv $FILE $(echo $FILE | sed -e 's/&/_/').txt; done

This will require sed though.
I don't see how a file could possibilty have a '/' in its name, but in case with OS X it's possible, this should fix it:
for FILE in *; do mv $FILE $(echo $(echo $FILE | sed -e 's/&/_/') | sed -e 's/\//_/').txt; done

(if you the 2nd script, there's no need to run the first)

I'm not using GNU/Linux right now so I can't check itt out, but I think it should work...
BTW to find bash:
whereis bash
which bash

Then once you have:
/path/to/bash copy the script I typed here

Or just put the one-liner in a file, and enter this as the first line of the file:
#!/path/to/bash

then, make the file executable:
chmod +x filename.sh
and run it: ./filename.sh

Ludootje how would you go about renaming all the files from say test1 or test1.txt to test1$DATE test1$DATE.txt?

I need to go through all files in a directory either a single level or recursivly and place a date and time stamp before the .extension if there is one. If there is no .extension then the date would just be appended to the end. As well this need to work for hidden files that start with .

Are you able to help

oh ya needs to work in bash










privacy (GDPR)