[英]Renaming xml file extension using bash script
我有一个目录,其中包含许多文件夹,每个文件夹都包含一个XML文件列表。 我正在编写一个遍历文件的bash脚本,如果文件大小超过65Mb,则将文件的扩展名重命名为“manual”。 这是我第一次编写shell脚本,我能够编写遍历文件的代码,但我在重命名部分遇到了困难。
for file in $dir
do
size=$(stat -c%s "$file")
if test "$size" -gt "68157440"; then
echo "Before Renaming...."
echo $file
echo "After renaming"
mv *.manual `basename $file`.xml
echo $file
else
echo $file >> outlog.log
fi
done
$ file的一个例子是,
/apps/jAS/dev/products-app/BConverter/data/supplier-data/TF/output/Fiber Optics and Fiber Management Solutions/Fiber Optic Cable Assemblies.xml
你遇到的困难究竟是什么?
如果它是文件名中的空格,请尝试
mv *.manual `basename "$file"`.xml
请注意,如果*.manual
扩展为多个文件名,则脚本将不起作用。
mv *.manual `basename $file`.xml
如果要将$file
的扩展名从xml
更改为manual
,请执行此操作
mv "$file" "${file%.xml}".manual
不需要脚本, find
和xargs
组合应该可以解决问题:
find . -size +65M | xargs -IQ mv Q Q.manual
Xargs的一个很少使用的-I
选项:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.