如何仅当满足多个条件时列出和删除文件

如何仅当满足多个条件时列出和删除文件

这是在 ubuntu 18.04 上。我可以在这台机器上访问 bash、pip3 和 ruby​​ gems。

尝试处理 VHS 转换器公司发送给我们的多个 mp4 文件。每个文件至少有一个名称中包含 240p 的版本,其中一些文件同时包含 240p 文件名和 480p 文件名。

他们将这数百个文件压缩成一个 zip 文件并发送给我们。

如果每个 mp4 文件都在一个目录中,我怎样才能只找到同时具有 240p 和 480p 版本的文件并删除 240p 版本——而不删除仅具有 240p 版本的文件。

答案1

使用 bash,你可以运行如下命令

for a in *240p.mp4
do 
   b=${a/240p/480p}                     ## replace 240 by 480
   if [ -f "$b" ]                       ## if x-480p.mp4 exists
     then   mv "$a" "REMOVE_$a"         ##   rename x-240p to REMOVE_x-240p
   fi
done

如果你对已删除列表感到满意

rm REMOVE_*

相关内容