Batch renaming files in unix and rollback
I rename few files (1234.xml, 9876.xml, 2345.xml etc) with .xml extension with the following code :
for i in *.xml
do
mv $i $i.ab
done
it becomes 1234.xml.ab, 9876.xml.ab, 2345.xml.ab...etc
Now, I want to rename it to 1234.x开发者_开发问答ml.SD, 9876.xml.SD, 2345.xml.SD...etc.
These are 100 files.
How can this be achieved with the help of code ? Please advise.
If you are using bash you can do:
for f in *.xml.ab; do
mv "$f" "${f%.ab}.SD"
done
or just use the rename command as:
rename 's/ab$/SD/' *.xml.ab
You can do it like that:
for f in *.xml.ab; do
mv $f `echo $f | sed 's/\.ab$//g'`
done
I'm not clear if you want to rename foo.xml.ab -> foo.xml or foo.xml.ab -> foo.xml.SD
foo.xml.ab -> foo.xml
for f in *.xml.ab; do
mv "$f" "${f%.ab}"
done
foo.xml.ab -> foo.xml.SD
for f in *.xml.ab; do
mv "$f" "${f/.ab/.SD}"
done
加载中,请稍侯......
精彩评论