繁体   English   中英

如何使用Shell脚本重命名所有文件?

[英]How to rename all the files using shell script?

我有数百个相同格式的文件。 我想通过使用前六个字符和扩展名来重命名文件。

以下代码提取了前6个字符...我正在显示它们

     for i in *.png; do echo $i | awk '{ print substr($0, 0, 7 )}'; done

我无法连接该扩展名。 有人可以帮忙。 如果脚本可以用mv命令完成,那就太好了。

谢谢

假设每个文件名在扩展名前至少包含六个字符,则可以编写

for file in *.png ; do mv "$file" "${file:0:6}.png" ; done

如果继续使用awk ,请在循环体外进行配管:

for i in *.png; do echo $i; done |
awk '{ print "mv $0 " substr($0, 0, 7) ".png"}' |
sh -vn

修改后的awk打印mv命令。 当您感到满意时,它将做正确的工作,将-vn替换为-x (或什么都不做)。

这几乎适用于任何外壳。 如果您专门使用bash ,则可以使用内置的字符串操作来完成所需的工作-请参阅ruakh的答案以了解一种可能的技术。 还有许多其他选择。 一些系统具有功能强大的rename命令(其他系统具有功能较弱的版本)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM