开发者

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
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜