[英]How to rename all directories , files and text in the files recursively using bash shell script in linux
[英]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.