[英]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.