unix下批量重命名文件并回滚

发布于 2024-09-29 08:03:39 字数 422 浏览 0 评论 0原文

我使用 .xml 扩展名重命名了几个文件(1234.xml9876.xml2345.xml 等)使用以下代码:

 for i in *.xml  
 do  
 mv $i $i.ab  
 done

它变成 1234.xml.ab9876.xml.ab2345.xml.ab...

等,我想将其重命名为 1234.xml.SD9876.xml.SD2345.xml.SD...等。

这是 100 个文件。

如何借助代码来实现这一点?请指教。

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.xml.SD, 9876.xml.SD, 2345.xml.SD...etc.

These are 100 files.

How can this be achieved with the help of code ? Please advise.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

凹づ凸ル 2024-10-06 08:03:39

如果您使用的是 bash,您可以执行以下操作:

for f in *.xml.ab; do
    mv "$f" "${f%.ab}.SD"
done

或者仅使用 rename 命令:

rename 's/ab$/SD/' *.xml.ab

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
白鸥掠海 2024-10-06 08:03:39

你可以这样做:

for f in *.xml.ab; do
    mv $f `echo $f | sed 's/\.ab$//g'`
done

You can do it like that:

for f in *.xml.ab; do
    mv $f `echo $f | sed 's/\.ab$//g'`
done
时光匆匆的小流年 2024-10-06 08:03:39

我不清楚你是否想重命名 foo.xml.ab -> foo.xml 或 foo.xml.ab -> foo.xml.SD

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

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
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文