我有一个文件夹,其中包含需要重命名的以下 mp4 文件
for filename in /media/usama/CRUNCH/RO_Plant/RO_Videos/*; do
File1=$filename
echo $File1
done
/media/usama/CRUNCH/RO_Plant/RO_Videos/Desal RO 16' Desalination Plants-JdN_Yx_5HzI.mp4
/media/usama/CRUNCH/RO_Plant/RO_Videos/How Desalination Works-_H8EDLFNDtI.mp4
/media/usama/CRUNCH/RO_Plant/RO_Videos/how membrane filter works with water-M3mpJysa6zQ.mp4
/media/usama/CRUNCH/RO_Plant/RO_Videos/Hydranautics - Spiral Wound Reverse Osmosis Elements-YlMGZWmh_Mw.mp4
/media/usama/CRUNCH/RO_Plant/RO_Videos/Industrial Reverse Osmosis Startup Part 1 of 3-6xD9FhbAIvY.mp4
/media/usama/CRUNCH/RO_Plant/RO_Videos/Industrial Reverse Osmosis Startup Part 2 of 3-Dt23yzCXaVA.mp4
/media/usama/CRUNCH/RO_Plant/RO_Videos/Industrial Reverse Osmosis Startup Part 3 of 3-VXyK20P6HD4.mp4
/media/usama/CRUNCH/RO_Plant/RO_Videos/MED Desalination Process-5nDcxhkq8Js.mp4
/media/usama/CRUNCH/RO_Plant/RO_Videos/Reverse Osmosis Membrane Replacement Procedure-zNXYkH3uj-I.mp4
/media/usama/CRUNCH/RO_Plant/RO_Videos/Reverse Osmosis or RO System-BeXHKpuHVZg.mp4
/media/usama/CRUNCH/RO_Plant/RO_Videos/Reverse Osmosis Pressure Vessel-BeXHKpuHVZg.mp4
/media/usama/CRUNCH/RO_Plant/RO_Videos/RO Process Equipments by R S Engineering, Mumbai-ijJ6QyaQ-Bk.mp4
/media/usama/CRUNCH/RO_Plant/RO_Videos/The BioSand Water Filter-SlqAitfBbdQ.mp4
Run Code Online (Sandbox Code Playgroud)
现在我想修剪从-到.mp4开始的随机单词,以便将此文件名转换
The BioSand Water Filter-SlqAitfBbdQ.mp4为The BioSand Water Filter.mp4
为此,我获得了部分成功,如下所示
for filename in /media/usama/CRUNCH/RO_Plant/RO_Videos/*; do
File1=$filename
Out=${File1:0:${#File1}-16}".mp4"
echo $Out
done
/media/usama/CRUNCH/RO_Plant/RO_Videos/Desal RO 16' Desalination Plants.mp4
/media/usama/CRUNCH/RO_Plant/RO_Videos/How Desalination Works.mp4
/media/usama/CRUNCH/RO_Plant/RO_Videos/how membrane filter works with water.mp4
/media/usama/CRUNCH/RO_Plant/RO_Videos/Hydranautics - Spiral Wound Reverse Osmosis Elements.mp4
/media/usama/CRUNCH/RO_Plant/RO_Videos/Industrial Reverse Osmosis Startup Part 1 of 3.mp4
/media/usama/CRUNCH/RO_Plant/RO_Videos/Industrial Reverse Osmosis Startup Part 2 of 3.mp4
/media/usama/CRUNCH/RO_Plant/RO_Videos/Industrial Reverse Osmosis Startup Part 3 of 3.mp4
/media/usama/CRUNCH/RO_Plant/RO_Videos/MED Desalination Process.mp4
/media/usama/CRUNCH/RO_Plant/RO_Videos/Reverse Osmosis Membrane Replacement Procedure.mp4
/media/usama/CRUNCH/RO_Plant/RO_Videos/Reverse Osmosis or RO System.mp4
/media/usama/CRUNCH/RO_Plant/RO_Videos/Reverse Osmosis Pressure Vessel.mp4
/media/usama/CRUNCH/RO_Plant/RO_Videos/RO Process Equipments by R S Engineering, Mumbai.mp4
/media/usama/CRUNCH/RO_Plant/RO_Videos/The BioSand Water Filter.mp4
Run Code Online (Sandbox Code Playgroud)
现在当我添加最后一块时,它归结为一无所有?
for filename in /media/usama/CRUNCH/RO_Plant/RO_Videos/*; do
File1=$filename
Out=${File1:0:${#File1}-16}".mp4"
echo $Out
mv $filename $Out
done
/media/usama/CRUNCH/RO_Plant/RO_Videos/Desal RO 16' Desalination Plants.mp4
mv: target ‘Plants.mp4’ is not a directory
/media/usama/CRUNCH/RO_Plant/RO_Videos/How Desalination Works.mp4
mv: target ‘Works.mp4’ is not a directory
/media/usama/CRUNCH/RO_Plant/RO_Videos/how membrane filter works with water.mp4
mv: target ‘water.mp4’ is not a directory
/media/usama/CRUNCH/RO_Plant/RO_Videos/Hydranautics - Spiral Wound Reverse Osmosis Elements.mp4
mv: target ‘Elements.mp4’ is not a directory
/media/usama/CRUNCH/RO_Plant/RO_Videos/Industrial Reverse Osmosis Startup Part 1 of 3.mp4
mv: target ‘3.mp4’ is not a directory
/media/usama/CRUNCH/RO_Plant/RO_Videos/Industrial Reverse Osmosis Startup Part 2 of 3.mp4
mv: target ‘3.mp4’ is not a directory
/media/usama/CRUNCH/RO_Plant/RO_Videos/Industrial Reverse Osmosis Startup Part 3 of 3.mp4
mv: target ‘3.mp4’ is not a directory
/media/usama/CRUNCH/RO_Plant/RO_Videos/MED Desalination Process.mp4
mv: target ‘Process.mp4’ is not a directory
/media/usama/CRUNCH/RO_Plant/RO_Videos/Reverse Osmosis Membrane Replacement Procedure.mp4
mv: target ‘Procedure.mp4’ is not a directory
/media/usama/CRUNCH/RO_Plant/RO_Videos/Reverse Osmosis or RO System.mp4
mv: target ‘System.mp4’ is not a directory
/media/usama/CRUNCH/RO_Plant/RO_Videos/Reverse Osmosis Pressure Vessel.mp4
mv: target ‘Vessel.mp4’ is not a directory
/media/usama/CRUNCH/RO_Plant/RO_Videos/RO Process Equipments by R S Engineering, Mumbai.mp4
mv: target ‘Mumbai.mp4’ is not a directory
/media/usama/CRUNCH/RO_Plant/RO_Videos/The BioSand Water Filter.mp4
mv: target ‘Filter.mp4’ is not a directory
Run Code Online (Sandbox Code Playgroud)
看起来文件名都是这种格式:
filename-RandString.mp4
Run Code Online (Sandbox Code Playgroud)
如果是这样,您可以简单地删除从最后-到的所有内容.mp4:
for f in /media/usama/CRUNCH/RO_Plant/RO_Videos/*-*mp4; do
mv "$f" "${f%-*mp4}.mp4";
done
Run Code Online (Sandbox Code Playgroud)
格式${string%substring}删除的最短匹配$substring从后面$string。
您也可以使用 (Perl) 执行此操作rename:
rename 's/-[^-]*?mp4$/.mp4/' /media/usama/CRUNCH/RO_Plant/RO_Videos/*-*mp4
Run Code Online (Sandbox Code Playgroud)