【发布时间】:2018-08-14 20:47:41
【问题描述】:
使用 bash 循环,我想删除文件夹中三种类型的文件名之一
1) L4.mp3
2) L4 withMusic.mp3
3) L4 noIntro withMusic.mp3
这三种类型的文件很多,唯一变化的是L后面的数字
我想: 保留任何名称如 1(原始文件)的文件
保留任何名称如 3(添加音乐并删除简介)的文件
但删除所有名称如 2 的文件(添加了音乐但没有介绍)
>最好的方法是什么?
我最初的想法(无论如何都没有编译)是:
for file in *.mp3; do
name=${file%%[.]*};
if name != "$*trimmed wMusic.mp3";
then
rm file;
fi
done
但输出是:
-bash: name: command not found
-bash: name: command not found
-bash: name: command not found
-bash: name: command not found
【问题讨论】:
-
Bash 无法编译。曾经。因此,您可能在终端上收到了错误消息,请将其添加到问题中。添加此内容时,请格式化代码部分(使用编辑器中的
{ }图标)。 -
rm *"noIntro withMusic.mp3"? -
使用Python。
-
@funky-future 那太好了。我将如何在 Python 中做到这一点?
-
if 语句的语法应该是
if [ "$name" == "$somevariable" ]