How to rename all the files in a folder having specific
extension?
Example: I have some files with extension (.txt) in a folder
name 'Test'. I have to rename all the .txt files in a test
and its subdirectories to .my extension.
Answers were Sorted based on User's Feedback
Answer / manuswami
for file in `ls` ; do NEW=`echo $file | sed 's/.txt/.my/g'`
; mv $file $NEW ; done
| Is This Answer Correct ? | 10 Yes | 0 No |
Answer / akshay telang
for i in `find . -name "*.txt"`
> do
> mv $i ${i%.txt}.my
> done
| Is This Answer Correct ? | 11 Yes | 4 No |
Answer / prav gir
#!/bin/sh
for filename in *$1*
do
echo "$filename"
mv -f "$filename" `echo $filename|sed "s/$1/$2/"`
done
run script like
$>scrpt1 .txt .my
| Is This Answer Correct ? | 3 Yes | 3 No |
Answer / geichel
#!/bin/bash
for x in $(find $1 -name '*.txt' -type f )
do
OUT=$(echo $x | sed -e "s/\.txt$/.my/")
mv $x $OUT
done
exit 0;
| Is This Answer Correct ? | 0 Yes | 0 No |
Answer / venugopal adep
for file in `ls *.txt`; do new_file=`echo $file | sed
's/txt/my/g'`; mv $file $new_file; done
| Is This Answer Correct ? | 0 Yes | 0 No |
Answer / indu sharma
find . -name "*.txt" -exec ls {} \; | xargs -n1 -I{} sh -c 'mv "{}" `echo "{}"|basename "{}" .txt`.my'
| Is This Answer Correct ? | 1 Yes | 1 No |
Answer / sushanta
for i in *
do
p=`basename $i c`
q=$p "txt"
mv $i $q
done
| Is This Answer Correct ? | 0 Yes | 0 No |
Answer / veera
rename replacing-text replaced-test list-of-files
ex: rename .txt .my *.txt
| Is This Answer Correct ? | 0 Yes | 0 No |
Answer / aravind s
basename is the appropriate command to cut the unwanted
string from a filename
for example
$basename unix.txt txt #txt stripped off
unix.
-----------------------
for your problem the solution is
for i in `find . -name '*.txt'`|xargs ls; do
leftname=`basename $i txt`
mv $i ${leftname}doc
done
-----------------------
basename isn't a shell bulletin, but an external command.
The reason why we deal with it here is that it's most
effective when used with the for loop.
Ref: Unix Concepts & Applications - Sumitabha Das
| Is This Answer Correct ? | 2 Yes | 3 No |
Explore about environment variables?
write a shell script to find the largest number from 3 given numbers.
How do you debug a script?
What is echo $shell?
How to pass an argument to a script?
Can shell script run on windows?
What is the difference between bash and shell?
Using set -A write a script to print the output of the ls command in 5 columns with two spaces between each column. Pretend that ls does not have multicolumn output.
Differentiate between ‘ and ” quotes.
What is egrep?
How do you know which shell I am using?
how to read systems current date and time